2016-11-10 07:31:45

by Dexuan Cui

[permalink] [raw]
Subject: [PATCH 0/3] PCI: hv: clean-up and 2 fixes to the hot-remove case

PATCH 1 is just a clean-up. There should be no functional change.

PATCH 2 and 3 are for device hot-remove case.
Currently the driver will stop working or even cause panic, if we do
hot add/remove quickly a few times. With the 2 patches, everything works
reliably in my tests now.

There can be still a potential issue with hot-remove when we unload
the driver at the same time. That would require more work of proper
synchronization among the 3 paths: the .probe/.remove, the channel callback,
and the offloaded hv_pci_devices_present()/hv_eject_device_work().

But for now, PATCH 2 and 3 do improve the situation a lot.

Dexuan Cui (3):
PCI: hv: use the correct buffer size in new_pcichild_device()
PCI: hv: fix hv_pci_remove() for hot-remove
PCI: hv: delete the device earlier from hbus->children for hot-remove

drivers/pci/host/pci-hyperv.c | 67 ++++++++++++++++++++++++++-----------------
1 file changed, 40 insertions(+), 27 deletions(-)

--
2.7.4



2016-11-16 22:49:06

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH 0/3] PCI: hv: clean-up and 2 fixes to the hot-remove case

On Thu, Nov 10, 2016 at 07:16:22AM +0000, Dexuan Cui wrote:
> PATCH 1 is just a clean-up. There should be no functional change.
>
> PATCH 2 and 3 are for device hot-remove case.
> Currently the driver will stop working or even cause panic, if we do
> hot add/remove quickly a few times. With the 2 patches, everything works
> reliably in my tests now.
>
> There can be still a potential issue with hot-remove when we unload
> the driver at the same time. That would require more work of proper
> synchronization among the 3 paths: the .probe/.remove, the channel callback,
> and the offloaded hv_pci_devices_present()/hv_eject_device_work().
>
> But for now, PATCH 2 and 3 do improve the situation a lot.
>
> Dexuan Cui (3):
> PCI: hv: use the correct buffer size in new_pcichild_device()
> PCI: hv: fix hv_pci_remove() for hot-remove
> PCI: hv: delete the device earlier from hbus->children for hot-remove
>
> drivers/pci/host/pci-hyperv.c | 67 ++++++++++++++++++++++++++-----------------
> 1 file changed, 40 insertions(+), 27 deletions(-)

I applied all three of these to pci/host-hv for v4.10, thanks!

Jake, I converted your "looks good to me" to Reviewed-by tags.

K. Y., I added your acks on 2 & 3. If you acked 1, I missed it.

2016-11-16 23:35:01

by KY Srinivasan

[permalink] [raw]
Subject: RE: [PATCH 0/3] PCI: hv: clean-up and 2 fixes to the hot-remove case



> -----Original Message-----
> From: Bjorn Helgaas [mailto:[email protected]]
> Sent: Wednesday, November 16, 2016 2:49 PM
> To: Dexuan Cui <[email protected]>
> Cc: Bjorn Helgaas <[email protected]>; [email protected];
> [email protected]; [email protected]; KY Srinivasan
> <[email protected]>; Haiyang Zhang <[email protected]>; Stephen
> Hemminger <[email protected]>; Jake Oshins
> <[email protected]>; Hadden Hoppert <[email protected]>;
> Vitaly Kuznetsov <[email protected]>; [email protected];
> [email protected]; [email protected]; [email protected]
> Subject: Re: [PATCH 0/3] PCI: hv: clean-up and 2 fixes to the hot-remove case
>
> On Thu, Nov 10, 2016 at 07:16:22AM +0000, Dexuan Cui wrote:
> > PATCH 1 is just a clean-up. There should be no functional change.
> >
> > PATCH 2 and 3 are for device hot-remove case.
> > Currently the driver will stop working or even cause panic, if we do
> > hot add/remove quickly a few times. With the 2 patches, everything works
> > reliably in my tests now.
> >
> > There can be still a potential issue with hot-remove when we unload
> > the driver at the same time. That would require more work of proper
> > synchronization among the 3 paths: the .probe/.remove, the channel
> callback,
> > and the offloaded hv_pci_devices_present()/hv_eject_device_work().
> >
> > But for now, PATCH 2 and 3 do improve the situation a lot.
> >
> > Dexuan Cui (3):
> > PCI: hv: use the correct buffer size in new_pcichild_device()
> > PCI: hv: fix hv_pci_remove() for hot-remove
> > PCI: hv: delete the device earlier from hbus->children for hot-remove
> >
> > drivers/pci/host/pci-hyperv.c | 67 ++++++++++++++++++++++++++-------
> ----------
> > 1 file changed, 40 insertions(+), 27 deletions(-)
>
> I applied all three of these to pci/host-hv for v4.10, thanks!
>
> Jake, I converted your "looks good to me" to Reviewed-by tags.
>
> K. Y., I added your acks on 2 & 3. If you acked 1, I missed it.

Thanks Bjorn; I thought I had acked all three, but that is ok.

K. Y