mbox series

[for-6.0,v2,0/2] hw/block/nvme: fix msix uninit

Message ID 20210423052127.512489-1-its@irrelevant.dk
Headers show
Series hw/block/nvme: fix msix uninit | expand

Message

Klaus Jensen April 23, 2021, 5:21 a.m. UTC
From: Klaus Jensen <k.jensen@samsung.com>

First patch fixes a regression where msix is not correctly uninit'ed
when an nvme device is hotplugged with device_del. When viewed in
conjunction with the commit that introduced the bug (commit
1901b4967c3f), I think the fix looks relatively obvious.

Second patch disables hotplugging for nvme controllers that are
connected to subsystems since the way namespaces are connected to the
nvme controller bus is messed up by removing the device. This bug causes
a segfault but is *not* a regression and is related to an experimental
feature.

v2:
  - remove memory subregion as well
  - add (possible) patch to disable hotplugging on subsystem connected
    controllers

Klaus Jensen (2):
  hw/block/nvme: fix invalid msix exclusive uninit
  hw/block/nvme: disable hotplugging for subsystem-linked controllers

 hw/block/nvme.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Klaus Jensen April 23, 2021, 10:38 a.m. UTC | #1
On Apr 23 07:21, Klaus Jensen wrote:
>From: Klaus Jensen <k.jensen@samsung.com>
>
>First patch fixes a regression where msix is not correctly uninit'ed
>when an nvme device is hotplugged with device_del. When viewed in
>conjunction with the commit that introduced the bug (commit
>1901b4967c3f), I think the fix looks relatively obvious.
>
>Second patch disables hotplugging for nvme controllers that are
>connected to subsystems since the way namespaces are connected to the
>nvme controller bus is messed up by removing the device. This bug causes
>a segfault but is *not* a regression and is related to an experimental
>feature.
>
>v2:
>  - remove memory subregion as well
>  - add (possible) patch to disable hotplugging on subsystem connected
>    controllers
>
>Klaus Jensen (2):
>  hw/block/nvme: fix invalid msix exclusive uninit
>  hw/block/nvme: disable hotplugging for subsystem-linked controllers
>
> hw/block/nvme.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
>-- 
>2.31.1
>
>

Peter,

I know you have a lot of crap on your plate right now, so for the 
record, yes, this is a regression, but not release critical, right?

I am not aware of anyone depending on this unplugging functionality 
(which according to Bug 1925496 is and have always been flaky) in 
production. Basically, as far as I know, all known uses of this device 
are for development and/or testing.
Peter Maydell April 23, 2021, 10:50 a.m. UTC | #2
On Fri, 23 Apr 2021 at 11:38, Klaus Jensen <its@irrelevant.dk> wrote:
>
> On Apr 23 07:21, Klaus Jensen wrote:
> >From: Klaus Jensen <k.jensen@samsung.com>
> >
> >First patch fixes a regression where msix is not correctly uninit'ed
> >when an nvme device is hotplugged with device_del. When viewed in
> >conjunction with the commit that introduced the bug (commit
> >1901b4967c3f), I think the fix looks relatively obvious.
> >
> >Second patch disables hotplugging for nvme controllers that are
> >connected to subsystems since the way namespaces are connected to the
> >nvme controller bus is messed up by removing the device. This bug causes
> >a segfault but is *not* a regression and is related to an experimental
> >feature.

> I know you have a lot of crap on your plate right now, so for the
> record, yes, this is a regression, but not release critical, right?
>
> I am not aware of anyone depending on this unplugging functionality
> (which according to Bug 1925496 is and have always been flaky) in
> production. Basically, as far as I know, all known uses of this device
> are for development and/or testing.

Thanks for the update. We probably are going to have to roll an rc5
for the network-interface hotplug crash, but it sounds from your
description (especially if hotunplug has always been broken) as if
we could safely leave theses fixes until 6.1.

thanks
-- PMM