From: Xueming Li <xuemingl@nvidia.com>
To: <dev@dpdk.org>
Cc: <xuemingl@nvidia.com>, <matan@mellanox.com>, <stable@dpdk.org>,
"Matan Azrad" <matan@nvidia.com>,
Viacheslav Ovsiienko <viacheslavo@nvidia.com>,
Maxime Coquelin <maxime.coquelin@redhat.com>
Subject: [PATCH v2 1/7] vdpa/mlx5: fix interrupt trash that leads to segment fault
Date: Thu, 24 Feb 2022 23:50:55 +0800 [thread overview]
Message-ID: <20220224155101.1991626-2-xuemingl@nvidia.com> (raw)
In-Reply-To: <20220224155101.1991626-1-xuemingl@nvidia.com>
Disable interrupt unregister timeout to avoid invalid FD caused
interrupt thread segment fault.
Fixes: 62c813706e41 ("vdpa/mlx5: map doorbell")
Cc: matan@mellanox.com
Cc: stable@dpdk.org
Signed-off-by: Xueming Li <xuemingl@nvidia.com>
---
drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c b/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
index 3416797d289..de324506cb9 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
@@ -17,7 +17,7 @@
static void
-mlx5_vdpa_virtq_handler(void *cb_arg)
+mlx5_vdpa_virtq_kick_handler(void *cb_arg)
{
struct mlx5_vdpa_virtq *virtq = cb_arg;
struct mlx5_vdpa_priv *priv = virtq->priv;
@@ -59,20 +59,16 @@ static int
mlx5_vdpa_virtq_unset(struct mlx5_vdpa_virtq *virtq)
{
unsigned int i;
- int retries = MLX5_VDPA_INTR_RETRIES;
int ret = -EAGAIN;
- if (rte_intr_fd_get(virtq->intr_handle) != -1) {
- while (retries-- && ret == -EAGAIN) {
+ if (rte_intr_fd_get(virtq->intr_handle) >= 0) {
+ while (ret == -EAGAIN) {
ret = rte_intr_callback_unregister(virtq->intr_handle,
- mlx5_vdpa_virtq_handler,
- virtq);
+ mlx5_vdpa_virtq_kick_handler, virtq);
if (ret == -EAGAIN) {
- DRV_LOG(DEBUG, "Try again to unregister fd %d "
- "of virtq %d interrupt, retries = %d.",
- rte_intr_fd_get(virtq->intr_handle),
- (int)virtq->index, retries);
-
+ DRV_LOG(DEBUG, "Try again to unregister fd %d of virtq %hu interrupt",
+ rte_intr_fd_get(virtq->intr_handle),
+ (int)virtq->index);
usleep(MLX5_VDPA_INTR_RETRIES_USEC);
}
}
@@ -359,7 +355,7 @@ mlx5_vdpa_virtq_setup(struct mlx5_vdpa_priv *priv, int index)
goto error;
if (rte_intr_callback_register(virtq->intr_handle,
- mlx5_vdpa_virtq_handler,
+ mlx5_vdpa_virtq_kick_handler,
virtq)) {
rte_intr_fd_set(virtq->intr_handle, -1);
DRV_LOG(ERR, "Failed to register virtq %d interrupt.",
--
2.35.1
next prev parent reply other threads:[~2022-02-24 15:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20220224132820.1939650-1-xuemingl@nvidia.com>
2022-02-24 13:28 ` [PATCH " Xueming Li
2022-02-24 13:28 ` [PATCH 2/7] vdpa/mlx5: fix dead loop when process interrupted Xueming Li
[not found] ` <20220224143809.1977642-1-xuemingl@nvidia.com>
2022-02-24 14:38 ` [PATCH v1 1/7] vdpa/mlx5: fix interrupt trash that leads to segment fault Xueming Li
2022-02-24 14:38 ` [PATCH v1 2/7] vdpa/mlx5: fix dead loop when process interrupted Xueming Li
[not found] ` <20220224155101.1991626-1-xuemingl@nvidia.com>
2022-02-24 15:50 ` Xueming Li [this message]
2022-04-20 10:39 ` [PATCH v2 1/7] vdpa/mlx5: fix interrupt trash that leads to segment fault Maxime Coquelin
2022-02-24 15:50 ` [PATCH v2 2/7] vdpa/mlx5: fix dead loop when process interrupted Xueming Li
2022-04-20 10:33 ` Maxime Coquelin
[not found] ` <20220508142554.560354-1-xuemingl@nvidia.com>
2022-05-08 14:25 ` [PATCH v3 1/7] vdpa/mlx5: fix interrupt trash that leads to segment fault Xueming Li
2022-05-08 14:25 ` [PATCH v3 2/7] vdpa/mlx5: fix dead loop when process interrupted Xueming Li
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=20220224155101.1991626-2-xuemingl@nvidia.com \
--to=xuemingl@nvidia.com \
--cc=dev@dpdk.org \
--cc=matan@mellanox.com \
--cc=matan@nvidia.com \
--cc=maxime.coquelin@redhat.com \
--cc=stable@dpdk.org \
--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;
as well as URLs for NNTP newsgroup(s).