[dpdk-stable] patch 'eal/linux: fix epoll fd list rebuild for interrupts' has been queued to stable release 19.11.4

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri Jul 24 13:58:00 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/26/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From 318c4a44965c100702b95d58c18c6c1c22bd25a7 Mon Sep 17 00:00:00 2001
From: Harman Kalra <hkalra at marvell.com>
Date: Fri, 19 Jun 2020 19:29:28 +0530
Subject: [PATCH] eal/linux: fix epoll fd list rebuild for interrupts

[ upstream commit 02b73b1e93a2e319e5751e0e662e6271f6f3367e ]

An issue has been observed where epoll file descriptor
list rebuilds every time an interrupt/alarm event is
received.

eal_intr_process_interrupts() should notify pipe fd only
if any source is removed from the source list i.e (rv > 0)

Fixes: 0c7ce182a760 ("eal: add pending interrupt callback unregister")

Signed-off-by: Harman Kalra <hkalra at marvell.com>
---
 lib/librte_eal/linux/eal/eal_interrupts.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/linux/eal/eal_interrupts.c b/lib/librte_eal/linux/eal/eal_interrupts.c
index 14ebb108c..5a58f05fa 100644
--- a/lib/librte_eal/linux/eal/eal_interrupts.c
+++ b/lib/librte_eal/linux/eal/eal_interrupts.c
@@ -984,7 +984,7 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
 		}
 
 		/* notify the pipe fd waited by epoll_wait to rebuild the wait list */
-		if (rv >= 0 && write(intr_pipe.writefd, "1", 1) < 0) {
+		if (rv > 0 && write(intr_pipe.writefd, "1", 1) < 0) {
 			rte_spinlock_unlock(&intr_lock);
 			return -EPIPE;
 		}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-07-24 12:53:50.234272972 +0100
+++ 0042-eal-linux-fix-epoll-fd-list-rebuild-for-interrupts.patch	2020-07-24 12:53:48.255005863 +0100
@@ -1,8 +1,10 @@
-From 02b73b1e93a2e319e5751e0e662e6271f6f3367e Mon Sep 17 00:00:00 2001
+From 318c4a44965c100702b95d58c18c6c1c22bd25a7 Mon Sep 17 00:00:00 2001
 From: Harman Kalra <hkalra at marvell.com>
 Date: Fri, 19 Jun 2020 19:29:28 +0530
 Subject: [PATCH] eal/linux: fix epoll fd list rebuild for interrupts
 
+[ upstream commit 02b73b1e93a2e319e5751e0e662e6271f6f3367e ]
+
 An issue has been observed where epoll file descriptor
 list rebuilds every time an interrupt/alarm event is
 received.
@@ -11,18 +13,17 @@
 if any source is removed from the source list i.e (rv > 0)
 
 Fixes: 0c7ce182a760 ("eal: add pending interrupt callback unregister")
-Cc: stable at dpdk.org
 
 Signed-off-by: Harman Kalra <hkalra at marvell.com>
 ---
- lib/librte_eal/linux/eal_interrupts.c | 2 +-
+ lib/librte_eal/linux/eal/eal_interrupts.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/lib/librte_eal/linux/eal_interrupts.c b/lib/librte_eal/linux/eal_interrupts.c
-index 16e7a7d51..84eeaa1bc 100644
---- a/lib/librte_eal/linux/eal_interrupts.c
-+++ b/lib/librte_eal/linux/eal_interrupts.c
-@@ -1010,7 +1010,7 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
+diff --git a/lib/librte_eal/linux/eal/eal_interrupts.c b/lib/librte_eal/linux/eal/eal_interrupts.c
+index 14ebb108c..5a58f05fa 100644
+--- a/lib/librte_eal/linux/eal/eal_interrupts.c
++++ b/lib/librte_eal/linux/eal/eal_interrupts.c
+@@ -984,7 +984,7 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
  		}
  
  		/* notify the pipe fd waited by epoll_wait to rebuild the wait list */


More information about the stable mailing list