From: Kevin Traynor <ktraynor@redhat.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, david.marchand@redhat.com,
dsosnowski@nvidia.com, viacheslavo@nvidia.com,
Kevin Traynor <ktraynor@redhat.com>
Subject: [PATCH v2 0/2] interrupt epoll event handling
Date: Fri, 6 Feb 2026 17:20:52 +0000 [thread overview]
Message-ID: <20260206172054.273858-1-ktraynor@redhat.com> (raw)
In-Reply-To: <20260128122055.192104-1-ktraynor@redhat.com>
These patches are to fix some issues with epoll event handling for
EPOLLERR/EPOLLRDHUP/EPOLLHUP.
In the interrupt handling code, some interrupts are read directly in eal
and some just call registered callback which will read the interrupt.
v1 version was too aggressively dealing with epoll disconnect/error events
by detecting and removing the interrupt in the eal interrupt code and
not calling the registered callbacks.
This was a problem for virtio, which needs to handle these scenarios
itself so it can enable reconnect for vhost server.
In v2, if the read is not done in eal then the registered callback will
be called and it is up to handlers external to eal to deal with the
interrupt as they see fit.
This better respects interrupt types like RTE_INTR_HANDLE_EXT and
RTE_INTR_HANDLE_VDEV.
To deal with the observed issue of mlx5 devx interrupts causing a
busy-loop and 100% CPU of dpdk-intr thread, extra handling is added to
the devx interrupt handler.
1/2: deals with mlx5 devx interrupt busy-loop
2/2: deals with disconnect/error epoll events for interrupts read in eal
The patches are independent but 1/2 is the direct fix for the real life
bug observed and reported in https://bugs.dpdk.org/show_bug.cgi?id=1873.
Kevin Traynor (2):
net/mlx5: check for no data read in devx interrupt
eal/linux: handle interrupt epoll events
drivers/net/mlx5/linux/mlx5_ethdev_os.c | 34 ++++++++++---
lib/eal/linux/eal_interrupts.c | 67 ++++++++++++++++---------
2 files changed, 72 insertions(+), 29 deletions(-)
--
2.52.0
next prev parent reply other threads:[~2026-02-06 17:21 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-28 12:20 [PATCH] eal/linux: handle epoll error conditions Kevin Traynor
2026-01-29 12:51 ` Kevin Traynor
2026-02-06 17:20 ` Kevin Traynor [this message]
2026-02-06 17:20 ` [PATCH v2 1/2] net/mlx5: check for no data read in devx interrupt Kevin Traynor
2026-02-07 6:09 ` Stephen Hemminger
2026-02-10 15:05 ` Kevin Traynor
2026-02-10 17:05 ` Slava Ovsiienko
2026-02-10 19:07 ` Kevin Traynor
2026-02-10 20:58 ` Slava Ovsiienko
2026-02-19 14:44 ` Kevin Traynor
2026-02-06 17:20 ` [PATCH v2 2/2] eal/linux: handle interrupt epoll events Kevin Traynor
2026-02-07 6:11 ` Stephen Hemminger
2026-02-10 13:35 ` Kevin Traynor
2026-02-10 9:17 ` David Marchand
2026-02-10 14:47 ` Kevin Traynor
2026-02-10 18:06 ` [PATCH v3 0/2] interrupt epoll event handling Kevin Traynor
2026-02-10 18:06 ` [PATCH v3 1/2] net/mlx5: check for no data read in devx interrupt Kevin Traynor
2026-02-10 18:06 ` [PATCH v3 2/2] eal/linux: handle interrupt epoll events Kevin Traynor
2026-02-19 14:37 ` [PATCH v4 0/3] interrupt disconnect/error event handling Kevin Traynor
2026-02-19 14:38 ` Kevin Traynor
2026-02-19 14:38 ` [PATCH v4 1/3] eal/linux: handle interrupt epoll events Kevin Traynor
2026-02-19 14:38 ` [PATCH v4 2/3] eal/interrupt: add interrupt event info Kevin Traynor
2026-02-26 15:41 ` David Marchand
2026-03-02 11:47 ` Kevin Traynor
2026-02-19 14:38 ` [PATCH v4 3/3] net/mlx5: check devx disconnect/error interrupt events Kevin Traynor
2026-03-03 16:16 ` Slava Ovsiienko
2026-02-19 18:52 ` [PATCH v4 0/3] interrupt disconnect/error event handling Stephen Hemminger
2026-03-02 11:41 ` Kevin Traynor
2026-03-03 18:58 ` [PATCH v5 " Kevin Traynor
2026-03-03 18:58 ` [PATCH v5 1/3] eal/linux: handle interrupt epoll events Kevin Traynor
2026-03-03 18:58 ` [PATCH v5 2/3] eal/interrupt: add interrupt event info Kevin Traynor
2026-03-03 18:58 ` [PATCH v5 3/3] net/mlx5: check devx disconnect/error interrupt events Kevin Traynor
2026-03-04 11:09 ` [PATCH v5 0/3] interrupt disconnect/error event handling David Marchand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260206172054.273858-1-ktraynor@redhat.com \
--to=ktraynor@redhat.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=dsosnowski@nvidia.com \
--cc=thomas@monjalon.net \
--cc=viacheslavo@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox