* Early backport of Vhost regression fix in LTS branches
@ 2022-09-20 9:36 Maxime Coquelin
2022-09-20 11:03 ` Kevin Traynor
0 siblings, 1 reply; 5+ messages in thread
From: Maxime Coquelin @ 2022-09-20 9:36 UTC (permalink / raw)
To: stable, Kevin Traynor, Luca Boccassi, Christian Ehrhardt, Xueming Li
Cc: Michael Phelan
Hi LTS maintainers,
We have discovered a regression causing deadlock in application using
the Vhost library (when vIOMMU is used & NUMA reallocation happens).
The faulty commit [0] got backported in all maintained LTS branches,
following minor releases are impacted:
- V21.11.1+
- V20.11.5+
- V19.11.12+
The fix for this regression is already in main branch, and will be part
of next v22.11 release.
Discussing with Kevin, he suggested the fix to be backported early to
all the LTS branches.
Below is the fix to be backported:
======================================================================
commit 0b2a2ca35037d6a5168f0832c11d9858b8ae946a
Author: David Marchand <david.marchand@redhat.com>
Date: Mon Jul 25 22:32:03 2022 +0200
vhost: fix virtqueue use after free on NUMA reallocation
translate_ring_addresses (via numa_realloc) may change a virtio
device and
virtio queue.
The virtqueue object must be refreshed before accessing the lock.
Fixes: 04c27cb673b9 ("vhost: fix unsafe vring addresses modifications")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
======================================================================
The fix can be backported without conflicts to all the LTS branches,
except for v19.11, for which the Vhost directory rename can cause
issues. It can be overcome using below command:
git cherry-pick -Xfind-renames=5% 0b2a2ca350
Is that OK for you?
Please let me know if any issue.
Thanks,
Maxime
[0]: https://git.dpdk.org/dpdk/commit/?id=04c27cb673b9
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Early backport of Vhost regression fix in LTS branches
2022-09-20 9:36 Early backport of Vhost regression fix in LTS branches Maxime Coquelin
@ 2022-09-20 11:03 ` Kevin Traynor
2022-09-20 11:10 ` Luca Boccassi
0 siblings, 1 reply; 5+ messages in thread
From: Kevin Traynor @ 2022-09-20 11:03 UTC (permalink / raw)
To: Maxime Coquelin, stable, Luca Boccassi, Christian Ehrhardt, Xueming Li
Cc: Michael Phelan
On 20/09/2022 10:36, Maxime Coquelin wrote:
> Hi LTS maintainers,
>
> We have discovered a regression causing deadlock in application using
> the Vhost library (when vIOMMU is used & NUMA reallocation happens).
>
> The faulty commit [0] got backported in all maintained LTS branches,
> following minor releases are impacted:
> - V21.11.1+
> - V20.11.5+
> - V19.11.12+
>
> The fix for this regression is already in main branch, and will be part
> of next v22.11 release.
>
> Discussing with Kevin, he suggested the fix to be backported early to
> all the LTS branches.
>
This issue is a deadlock likely to occur with an application such as
OVS, that uses vIOMMU vhost ports and a multi-NUMA system.
In normal circumstances, for example with OVS, we could just recommend
users not to upgrade to the latest DPDK LTS releases until the issue is
fixed. Where this one gets tricky is that the latest LTS releases
contains CVE fixes.
At the moment if a user wants the CVE fixes *and* the below deadlock
fix, they will have to pick patches themselves. It might help some if
the DPDK stable branches (which are still at last release point)
backport the fix below early so a user can just pull the branch.
> Below is the fix to be backported:
>
> ======================================================================
> commit 0b2a2ca35037d6a5168f0832c11d9858b8ae946a
> Author: David Marchand <david.marchand@redhat.com>
> Date: Mon Jul 25 22:32:03 2022 +0200
>
> vhost: fix virtqueue use after free on NUMA reallocation
>
> translate_ring_addresses (via numa_realloc) may change a virtio
> device and
> virtio queue.
> The virtqueue object must be refreshed before accessing the lock.
>
> Fixes: 04c27cb673b9 ("vhost: fix unsafe vring addresses modifications")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ======================================================================
>
> The fix can be backported without conflicts to all the LTS branches,
> except for v19.11, for which the Vhost directory rename can cause
> issues. It can be overcome using below command:
>
> git cherry-pick -Xfind-renames=5% 0b2a2ca350
>
> Is that OK for you?
>
I can take care of it for all branches if other maintainers are busy and
ok with that.
thanks,
Kevin.
> Please let me know if any issue.
>
> Thanks,
> Maxime
>
> [0]: https://git.dpdk.org/dpdk/commit/?id=04c27cb673b9
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Early backport of Vhost regression fix in LTS branches
2022-09-20 11:03 ` Kevin Traynor
@ 2022-09-20 11:10 ` Luca Boccassi
2022-09-23 14:53 ` Kevin Traynor
0 siblings, 1 reply; 5+ messages in thread
From: Luca Boccassi @ 2022-09-20 11:10 UTC (permalink / raw)
To: Kevin Traynor
Cc: Maxime Coquelin, stable, Christian Ehrhardt, Xueming Li, Michael Phelan
On Tue, 20 Sept 2022 at 12:03, Kevin Traynor <ktraynor@redhat.com> wrote:
>
> On 20/09/2022 10:36, Maxime Coquelin wrote:
> > Hi LTS maintainers,
> >
> > We have discovered a regression causing deadlock in application using
> > the Vhost library (when vIOMMU is used & NUMA reallocation happens).
> >
> > The faulty commit [0] got backported in all maintained LTS branches,
> > following minor releases are impacted:
> > - V21.11.1+
> > - V20.11.5+
> > - V19.11.12+
> >
> > The fix for this regression is already in main branch, and will be part
> > of next v22.11 release.
> >
> > Discussing with Kevin, he suggested the fix to be backported early to
> > all the LTS branches.
> >
>
> This issue is a deadlock likely to occur with an application such as
> OVS, that uses vIOMMU vhost ports and a multi-NUMA system.
>
> In normal circumstances, for example with OVS, we could just recommend
> users not to upgrade to the latest DPDK LTS releases until the issue is
> fixed. Where this one gets tricky is that the latest LTS releases
> contains CVE fixes.
>
> At the moment if a user wants the CVE fixes *and* the below deadlock
> fix, they will have to pick patches themselves. It might help some if
> the DPDK stable branches (which are still at last release point)
> backport the fix below early so a user can just pull the branch.
>
> > Below is the fix to be backported:
> >
> > ======================================================================
> > commit 0b2a2ca35037d6a5168f0832c11d9858b8ae946a
> > Author: David Marchand <david.marchand@redhat.com>
> > Date: Mon Jul 25 22:32:03 2022 +0200
> >
> > vhost: fix virtqueue use after free on NUMA reallocation
> >
> > translate_ring_addresses (via numa_realloc) may change a virtio
> > device and
> > virtio queue.
> > The virtqueue object must be refreshed before accessing the lock.
> >
> > Fixes: 04c27cb673b9 ("vhost: fix unsafe vring addresses modifications")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> > ======================================================================
> >
> > The fix can be backported without conflicts to all the LTS branches,
> > except for v19.11, for which the Vhost directory rename can cause
> > issues. It can be overcome using below command:
> >
> > git cherry-pick -Xfind-renames=5% 0b2a2ca350
> >
> > Is that OK for you?
> >
>
> I can take care of it for all branches if other maintainers are busy and
> ok with that.
Sounds good to me, feel free to go ahead for 20.11, thank you.
Kind regards,
Luca Boccassi
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Early backport of Vhost regression fix in LTS branches
2022-09-20 11:10 ` Luca Boccassi
@ 2022-09-23 14:53 ` Kevin Traynor
2022-09-26 16:47 ` Kevin Traynor
0 siblings, 1 reply; 5+ messages in thread
From: Kevin Traynor @ 2022-09-23 14:53 UTC (permalink / raw)
To: Luca Boccassi, Christian Ehrhardt
Cc: Maxime Coquelin, stable, Xueming Li, Michael Phelan
On 20/09/2022 12:10, Luca Boccassi wrote:
> On Tue, 20 Sept 2022 at 12:03, Kevin Traynor <ktraynor@redhat.com> wrote:
>>
>> On 20/09/2022 10:36, Maxime Coquelin wrote:
>>> Hi LTS maintainers,
>>>
>>> We have discovered a regression causing deadlock in application using
>>> the Vhost library (when vIOMMU is used & NUMA reallocation happens).
>>>
>>> The faulty commit [0] got backported in all maintained LTS branches,
>>> following minor releases are impacted:
>>> - V21.11.1+
>>> - V20.11.5+
>>> - V19.11.12+
>>>
>>> The fix for this regression is already in main branch, and will be part
>>> of next v22.11 release.
>>>
>>> Discussing with Kevin, he suggested the fix to be backported early to
>>> all the LTS branches.
>>>
>>
>> This issue is a deadlock likely to occur with an application such as
>> OVS, that uses vIOMMU vhost ports and a multi-NUMA system.
>>
>> In normal circumstances, for example with OVS, we could just recommend
>> users not to upgrade to the latest DPDK LTS releases until the issue is
>> fixed. Where this one gets tricky is that the latest LTS releases
>> contains CVE fixes.
>>
>> At the moment if a user wants the CVE fixes *and* the below deadlock
>> fix, they will have to pick patches themselves. It might help some if
>> the DPDK stable branches (which are still at last release point)
>> backport the fix below early so a user can just pull the branch.
>>
>>> Below is the fix to be backported:
>>>
>>> ======================================================================
>>> commit 0b2a2ca35037d6a5168f0832c11d9858b8ae946a
>>> Author: David Marchand <david.marchand@redhat.com>
>>> Date: Mon Jul 25 22:32:03 2022 +0200
>>>
>>> vhost: fix virtqueue use after free on NUMA reallocation
>>>
>>> translate_ring_addresses (via numa_realloc) may change a virtio
>>> device and
>>> virtio queue.
>>> The virtqueue object must be refreshed before accessing the lock.
>>>
>>> Fixes: 04c27cb673b9 ("vhost: fix unsafe vring addresses modifications")
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: David Marchand <david.marchand@redhat.com>
>>> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>>> ======================================================================
>>>
>>> The fix can be backported without conflicts to all the LTS branches,
>>> except for v19.11, for which the Vhost directory rename can cause
>>> issues. It can be overcome using below command:
>>>
>>> git cherry-pick -Xfind-renames=5% 0b2a2ca350
>>>
>>> Is that OK for you?
>>>
>>
>> I can take care of it for all branches if other maintainers are busy and
>> ok with that.
>
> Sounds good to me, feel free to go ahead for 20.11, thank you.
>
20.11 and 21.11 are done.
@Christian, wasn't able to get in touch, not sure if you are on PTO etc.
I don't see any big risk, this is just backporting a patch that would be
backported in a couple of months anyway. So let's say I will push to the
19.11 branch on Monday if there are no objections.
thanks,
Kevin.
> Kind regards,
> Luca Boccassi
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Early backport of Vhost regression fix in LTS branches
2022-09-23 14:53 ` Kevin Traynor
@ 2022-09-26 16:47 ` Kevin Traynor
0 siblings, 0 replies; 5+ messages in thread
From: Kevin Traynor @ 2022-09-26 16:47 UTC (permalink / raw)
To: Luca Boccassi, Christian Ehrhardt
Cc: Maxime Coquelin, stable, Xueming Li, Michael Phelan
On 23/09/2022 15:53, Kevin Traynor wrote:
> On 20/09/2022 12:10, Luca Boccassi wrote:
>> On Tue, 20 Sept 2022 at 12:03, Kevin Traynor <ktraynor@redhat.com> wrote:
>>>
>>> On 20/09/2022 10:36, Maxime Coquelin wrote:
>>>> Hi LTS maintainers,
>>>>
>>>> We have discovered a regression causing deadlock in application using
>>>> the Vhost library (when vIOMMU is used & NUMA reallocation happens).
>>>>
>>>> The faulty commit [0] got backported in all maintained LTS branches,
>>>> following minor releases are impacted:
>>>> - V21.11.1+
>>>> - V20.11.5+
>>>> - V19.11.12+
>>>>
>>>> The fix for this regression is already in main branch, and will be part
>>>> of next v22.11 release.
>>>>
>>>> Discussing with Kevin, he suggested the fix to be backported early to
>>>> all the LTS branches.
>>>>
>>>
>>> This issue is a deadlock likely to occur with an application such as
>>> OVS, that uses vIOMMU vhost ports and a multi-NUMA system.
>>>
>>> In normal circumstances, for example with OVS, we could just recommend
>>> users not to upgrade to the latest DPDK LTS releases until the issue is
>>> fixed. Where this one gets tricky is that the latest LTS releases
>>> contains CVE fixes.
>>>
>>> At the moment if a user wants the CVE fixes *and* the below deadlock
>>> fix, they will have to pick patches themselves. It might help some if
>>> the DPDK stable branches (which are still at last release point)
>>> backport the fix below early so a user can just pull the branch.
>>>
>>>> Below is the fix to be backported:
>>>>
>>>> ======================================================================
>>>> commit 0b2a2ca35037d6a5168f0832c11d9858b8ae946a
>>>> Author: David Marchand <david.marchand@redhat.com>
>>>> Date: Mon Jul 25 22:32:03 2022 +0200
>>>>
>>>> vhost: fix virtqueue use after free on NUMA reallocation
>>>>
>>>> translate_ring_addresses (via numa_realloc) may change a virtio
>>>> device and
>>>> virtio queue.
>>>> The virtqueue object must be refreshed before accessing the lock.
>>>>
>>>> Fixes: 04c27cb673b9 ("vhost: fix unsafe vring addresses modifications")
>>>> Cc: stable@dpdk.org
>>>>
>>>> Signed-off-by: David Marchand <david.marchand@redhat.com>
>>>> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>>>> ======================================================================
>>>>
>>>> The fix can be backported without conflicts to all the LTS branches,
>>>> except for v19.11, for which the Vhost directory rename can cause
>>>> issues. It can be overcome using below command:
>>>>
>>>> git cherry-pick -Xfind-renames=5% 0b2a2ca350
>>>>
>>>> Is that OK for you?
>>>>
>>>
>>> I can take care of it for all branches if other maintainers are busy and
>>> ok with that.
>>
>> Sounds good to me, feel free to go ahead for 20.11, thank you.
>>
>
> 20.11 and 21.11 are done.
>
> @Christian, wasn't able to get in touch, not sure if you are on PTO etc.
> I don't see any big risk, this is just backporting a patch that would be
> backported in a couple of months anyway. So let's say I will push to the
> 19.11 branch on Monday if there are no objections.
>
Pushed to 19.11 branch, thanks.
> thanks,
> Kevin.
>
>> Kind regards,
>> Luca Boccassi
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-09-26 16:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-20 9:36 Early backport of Vhost regression fix in LTS branches Maxime Coquelin
2022-09-20 11:03 ` Kevin Traynor
2022-09-20 11:10 ` Luca Boccassi
2022-09-23 14:53 ` Kevin Traynor
2022-09-26 16:47 ` Kevin Traynor
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).