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
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.
> -----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