qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/6] PCI hotplug improvements


From: Gleb Natapov
Subject: Re: [Qemu-devel] [PATCH 0/6] PCI hotplug improvements
Date: Wed, 7 Mar 2012 14:43:03 +0200

On Tue, Mar 06, 2012 at 05:13:36PM -0700, Alex Williamson wrote:
> Here's a re-work of the patch that added _STA for the purpose of
> using it as an ack from the guest.  Instead of that, add a notifier
> for device access.  Once the guest reads from device config space,
> it owns it.  Until that point, we can remove it directly.  As pointed
> out by MST, this passes test b) below, which the _STA method would not.
> As a bonus, no bios change is required for this.  Patches 5 & 6 are
> just cleanups that can be applied independently.  Thanks,
> 
While I agree with Michael that using _STA as ack is a hack I think
this approach is not less of a hack. It is unlikely that this is how it
work on bare metal and we should follow real HW if possible.

> Alex
> 
> Tested using Linux guest:
> a) without acpiphp loaded:
>     - device_add (nothing happens)
>     - device_del (device removed directly)
How it works on real HW? On non ACPI compliant guest hot plug unplug is
not suppose to work.

> b) without acpiphp loaded:
>     - device_add (nothing happens)
>     - echo 1 > /sys/bus/pci/rescan (device discovered)
>     - device_del (nothing happens, guest owns device)
So guest can block a device from being ever removed?

>     - modprobe acpiphp
>     - device_del (guest releases device)
> c) with acpiphp loaded:
>     - device_add/del behave as expected (automatic add + coordinated removal)
> Tested using WinXP guest:
>     - device_add/del behave as expected (automatic add + coordinated removal)
> 
> ---
> 
> Alex Williamson (6):
>       api_piix4: Remove PCI_RMV_BASE write code
>       acpi_piix4: Use pci_get/set_byte
>       acpi_piix4: Track PCI hotplug status and allow non-ACPI remove path
>       pci: Add notifier for device probing
>       acpi_piix4: Only allow writes to PCI hotplug eject register
>       acpi_piix4: Disallow write to up/down PCI hotplug registers
> 
> 
>  hw/acpi_piix4.c |  175 
> ++++++++++++++++++++++++++++---------------------------
>  hw/pci_host.c   |   19 ++++++
>  hw/pci_host.h   |    2 +
>  3 files changed, 111 insertions(+), 85 deletions(-)

--
                        Gleb.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]