qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: ddutile@redhat.com, qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH 0/6] PCI hotplug improvements
Date: Wed, 7 Mar 2012 14:43:03 +0200	[thread overview]
Message-ID: <20120307124303.GI2521@redhat.com> (raw)
In-Reply-To: <20120307000340.3079.87515.stgit@bling.home>

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.

  parent reply	other threads:[~2012-03-07 12:44 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-07  0:13 [Qemu-devel] [PATCH 0/6] PCI hotplug improvements Alex Williamson
2012-03-07  0:13 ` [Qemu-devel] [PATCH 1/6] acpi_piix4: Disallow write to up/down PCI hotplug registers Alex Williamson
2012-03-07  0:14 ` [Qemu-devel] [PATCH 2/6] acpi_piix4: Only allow writes to PCI hotplug eject register Alex Williamson
2012-03-07  0:14 ` [Qemu-devel] [PATCH 3/6] pci: Add notifier for device probing Alex Williamson
2012-03-07  9:19   ` Paolo Bonzini
2012-03-07 20:12     ` Alex Williamson
2012-03-07  0:14 ` [Qemu-devel] [PATCH 4/6] acpi_piix4: Track PCI hotplug status and allow non-ACPI remove path Alex Williamson
2012-03-11 21:57   ` Michael S. Tsirkin
2012-03-07  0:15 ` [Qemu-devel] [PATCH 5/6] acpi_piix4: Use pci_get/set_byte Alex Williamson
2012-03-07  0:15 ` [Qemu-devel] [PATCH 6/6] api_piix4: Remove PCI_RMV_BASE write code Alex Williamson
2012-03-07 12:43 ` Gleb Natapov [this message]
2012-03-07 17:20   ` [Qemu-devel] [PATCH 0/6] PCI hotplug improvements Alex Williamson
2012-03-07 18:59     ` Gleb Natapov
2012-03-07 19:51       ` Alex Williamson
2012-03-07 21:00         ` Gleb Natapov
2012-03-07 21:44           ` Alex Williamson
2012-03-07 22:17             ` Gleb Natapov
2012-03-07 22:46               ` Alex Williamson
2012-03-08 12:39                 ` Gleb Natapov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120307124303.GI2521@redhat.com \
    --to=gleb@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=ddutile@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).