[dpdk-dev] eal: handle signal on eventfd
Commit Message
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@networkplumber.org>
---
lib/librte_eal/linuxapp/eal/eal_interrupts.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Comments
2015-07-15 10:16, Stephen Hemminger:
> 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@networkplumber.org>
Applied, thanks
@@ -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);