From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: Matan Azrad <matan@mellanox.com>, "dev@dpdk.org" <dev@dpdk.org>,
"chenbo.xia@intel.com" <chenbo.xia@intel.com>,
"yong.liu@intel.com" <yong.liu@intel.com>,
"yinan.wang@intel.com" <yinan.wang@intel.com>
Cc: Thomas Monjalon <thomas@monjalon.net>,
"ferruh.yigit@intel.com" <ferruh.yigit@intel.com>,
"david.marchand@redhat.com" <david.marchand@redhat.com>
Subject: Re: [dpdk-dev] [PATCH v2 3/3] net/vhost: fix interrupt mode
Date: Wed, 29 Jul 2020 09:52:51 +0200 [thread overview]
Message-ID: <0b068af9-78d3-401b-9e6d-2d77bb7fef4d@redhat.com> (raw)
In-Reply-To: <AM0PR0502MB401966C74597BD7CB155D6F7D2730@AM0PR0502MB4019.eurprd05.prod.outlook.com>
On 7/28/20 9:03 PM, Matan Azrad wrote:
>
>
> From: Maxime Coquelin:
>> At .new_device() time, only the first vring pair is now ready, other vrings are
>> consfigured later.
>>
>> Problem is that when application will setup and enable interrupts, only the
>> first queue pair Rx interrupt will be enabled.
>>
>> This patches fixes the issue by setting the number of max interrupts to the
>> number of Rx queues that will be later initialized. Then, as soon as a Rx vring
>> is ready, it removes the corresponding uninitialized epoll event, and install a
>> new one with the valid FD.
>
> Doesn't it race condition to the application decision?
> App may change the configuration per queue in any time by the app control thread.
> The vhost PMD may change it usynchronically from the vhost control thread in the vring state callback.
Yes you are right there could be a race here,I'm looking into getting it
done in a safe way. Yet it is good to get the confirmation from Intel
that it does fix the problem on their side.
Based on David suggestion, it might be made safe by relying on
eth_rxq_intr_enable()/eth_rxq_intr_disable().
If we cannot solve it in a safe way, then we'll have no other choice
than reverting partially your patch.
Maxime
> I already mentioned it in other thread on this topic but didn't get reply.
>
>> Fixes: 604052ae5395 ("net/vhost: support queue update")
>>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>
next prev parent reply other threads:[~2020-07-29 7:53 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-28 16:50 [dpdk-dev] [PATCH v2 0/3] Fix Vhost regressions Maxime Coquelin
2020-07-28 16:50 ` [dpdk-dev] [PATCH v2 1/3] vhost: fix guest notification setting Maxime Coquelin
2020-07-28 16:50 ` [dpdk-dev] [PATCH v2 2/3] net/vhost: fix queue update Maxime Coquelin
2020-07-29 2:52 ` Xia, Chenbo
2020-07-29 6:09 ` Wang, Yinan
2020-07-28 16:50 ` [dpdk-dev] [PATCH v2 3/3] net/vhost: fix interrupt mode Maxime Coquelin
2020-07-28 19:03 ` Matan Azrad
2020-07-29 7:52 ` Maxime Coquelin [this message]
2020-07-29 8:43 ` Matan Azrad
2020-07-29 9:10 ` Maxime Coquelin
2020-07-29 6:08 ` [dpdk-dev] [PATCH v2 0/3] Fix Vhost regressions Wang, Yinan
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=0b068af9-78d3-401b-9e6d-2d77bb7fef4d@redhat.com \
--to=maxime.coquelin@redhat.com \
--cc=chenbo.xia@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=matan@mellanox.com \
--cc=thomas@monjalon.net \
--cc=yinan.wang@intel.com \
--cc=yong.liu@intel.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).