eal: fix epoll fd list rebuild

Message ID 1589204585-13328-1-git-send-email-hkalra@marvell.com (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series eal: fix epoll fd list rebuild |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/travis-robot warning Travis build: failed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-testing fail Testing issues

Commit Message

Harman Kalra May 11, 2020, 1:43 p.m. UTC
  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"
Cc: stable@dpdk.org

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

Comments

Thomas Monjalon May 24, 2020, 3:30 p.m. UTC | #1
11/05/2020 15:43, Harman Kalra:
> 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"
> Cc: stable@dpdk.org
> 
> Signed-off-by: Harman Kalra <hkalra@marvell.com>

This patch is missing 20.05 because no review was done.
In general, we are missing a maintainer on "interrupts" area.
  
Harman Kalra May 25, 2020, 9:49 a.m. UTC | #2
On Sun, May 24, 2020 at 05:30:26PM +0200, Thomas Monjalon wrote:
> External Email
> 
> ----------------------------------------------------------------------
> 11/05/2020 15:43, Harman Kalra:
> > 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"
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Harman Kalra <hkalra@marvell.com>
> 
> This patch is missing 20.05 because no review was done.
> In general, we are missing a maintainer on "interrupts" area.

Hi Thomas,

If everybody is fine we can take up the responsibility of maintaining
interrupt subsystem. I can send a patch to update maintainer list for
the same.

Thanks
Harman

> 
>
  
Harman Kalra May 27, 2020, 12:32 p.m. UTC | #3
On Mon, May 25, 2020 at 03:19:08PM +0530, Harman Kalra wrote:
> On Sun, May 24, 2020 at 05:30:26PM +0200, Thomas Monjalon wrote:
> > External Email
> > 
> > ----------------------------------------------------------------------
> > 11/05/2020 15:43, Harman Kalra:
> > > 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"
> > > Cc: stable@dpdk.org
> > > 
> > > Signed-off-by: Harman Kalra <hkalra@marvell.com>
> > 
> > This patch is missing 20.05 because no review was done.
> > In general, we are missing a maintainer on "interrupts" area.
> 

Ping.

> Hi Thomas,
> 
> If everybody is fine we can take up the responsibility of maintaining
> interrupt subsystem. I can send a patch to update maintainer list for
> the same.
> 
> Thanks
> Harman
> 
> > 
> >
  
Harman Kalra May 27, 2020, 12:44 p.m. UTC | #4
On Wed, May 27, 2020 at 06:02:53PM +0530, Harman Kalra wrote:
> On Mon, May 25, 2020 at 03:19:08PM +0530, Harman Kalra wrote:
> > On Sun, May 24, 2020 at 05:30:26PM +0200, Thomas Monjalon wrote:
> > > External Email
> > > 
> > > ----------------------------------------------------------------------
> > > 11/05/2020 15:43, Harman Kalra:
> > > > 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"
> > > > Cc: stable@dpdk.org
> > > > 
> > > > Signed-off-by: Harman Kalra <hkalra@marvell.com>
> > > 
> > > This patch is missing 20.05 because no review was done.
> > > In general, we are missing a maintainer on "interrupts" area.
> > 
> 
> Ping.
> 
> > Hi Thomas,
> > 
> > If everybody is fine we can take up the responsibility of maintaining
> > interrupt subsystem. I can send a patch to update maintainer list for
> > the same.

Sorry for wrong placement of ping in my last mail, as it is bit
confusing if it was for the patch.

Rather intention of this ping is to get input if we can take up the
maintainership of interrupt subsystem to help the community with the
reviews.

> > 
> > Thanks
> > Harman
> > 
> > > 
> > >
  
Thomas Monjalon May 27, 2020, 1:04 p.m. UTC | #5
27/05/2020 14:44, Harman Kalra:
> On Wed, May 27, 2020 at 06:02:53PM +0530, Harman Kalra wrote:
> > On Mon, May 25, 2020 at 03:19:08PM +0530, Harman Kalra wrote:
> > > On Sun, May 24, 2020 at 05:30:26PM +0200, Thomas Monjalon wrote:
> > > > This patch is missing 20.05 because no review was done.
> > > > In general, we are missing a maintainer on "interrupts" area.
> > 
> > Ping.
> > 
> > > Hi Thomas,
> > > 
> > > If everybody is fine we can take up the responsibility of maintaining
> > > interrupt subsystem. I can send a patch to update maintainer list for
> > > the same.
> 
> Sorry for wrong placement of ping in my last mail, as it is bit
> confusing if it was for the patch.
> 
> Rather intention of this ping is to get input if we can take up the
> maintainership of interrupt subsystem to help the community with the
> reviews.

Please Cc everybody who contributed to this code.
Thanks
  
Harman Kalra May 27, 2020, 5:19 p.m. UTC | #6
On Wed, May 27, 2020 at 03:04:04PM +0200, Thomas Monjalon wrote:
> 27/05/2020 14:44, Harman Kalra:
> > On Wed, May 27, 2020 at 06:02:53PM +0530, Harman Kalra wrote:
> > > On Mon, May 25, 2020 at 03:19:08PM +0530, Harman Kalra wrote:
> > > > On Sun, May 24, 2020 at 05:30:26PM +0200, Thomas Monjalon wrote:
> > > > > This patch is missing 20.05 because no review was done.
> > > > > In general, we are missing a maintainer on "interrupts" area.
> > > 
> > > Ping.
> > > 
> > > > Hi Thomas,
> > > > 
> > > > If everybody is fine we can take up the responsibility of maintaining
> > > > interrupt subsystem. I can send a patch to update maintainer list for
> > > > the same.
> > 
> > Sorry for wrong placement of ping in my last mail, as it is bit
> > confusing if it was for the patch.
> > 
> > Rather intention of this ping is to get input if we can take up the
> > maintainership of interrupt subsystem to help the community with the
> > reviews.
> 
> Please Cc everybody who contributed to this code.
> Thanks

Adding all the code contributors for interrupt subsystem in CC.

Currently eal interrupt layer doesnt have a maintainer, if anybody
is willing to take up the responsibility for maintaining it, please feel
free to take it up or else I would like to volunteer for the same if
everybody is fine with the decision.

Thanks
Harman

> 
> 
>
  

Patch

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)
 		}
 
 		/* 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;
 		}