[dpdk-dev] [PATCH] eal: handle signal on eventfd

Stephen Hemminger stephen at networkplumber.org
Wed Jul 15 19:16:16 CEST 2015


The read for events in the interrupt thread may get interrupted
by signals from application. Avoid generating stray log message.

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 lib/librte_eal/linuxapp/eal/eal_interrupts.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
index b5f369e..61e7c85 100644
--- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
@@ -720,12 +720,14 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
 		 * for epoll_wait.
 		 */
 		bytes_read = read(events[n].data.fd, &buf, bytes_read);
+		if (bytes_read < 0) {
+			if (errno == EINTR || errno == EWOULDBLOCK)
+				continue;
 
-		if (bytes_read < 0)
 			RTE_LOG(ERR, EAL, "Error reading from file "
 				"descriptor %d: %s\n", events[n].data.fd,
 							strerror(errno));
-		else if (bytes_read == 0)
+		} else if (bytes_read == 0)
 			RTE_LOG(ERR, EAL, "Read nothing from file "
 				"descriptor %d\n", events[n].data.fd);
 
-- 
2.1.4



More information about the dev mailing list