[libvirt] [PATCH 1/6] Add pci utility functions

Daniel P. Berrange berrange at redhat.com
Thu Feb 26 14:56:13 UTC 2009


On Wed, Feb 25, 2009 at 08:17:08PM +0000, Mark McLoughlin wrote:
> Add implementations of dettach, reattach and reset for
> PCI devices.
> 
> Background to this code can be found here:
> 
>   http://marc.info/?l=kvm&m=123454366317045
> 
> Some notes:
> 
>   * pci-stub was first introduced in 2.6.29; if it's
>     not available, then dettach can only unbind the
>     device from the host driver
> 
>   * remove_id is queued up for 2.6.30; in it's absence
>     reattach cannot re-bind the device to the original
>     driver
> 
>   * If the device supports Function Level Reset, we
>     just don't bother doing the reset - KVM will do
>     this before and after a guest runs
> 
>   * Currently, if a reset would affect another device
>     on the same bus, or another function on the same
>     multi-function device, then we just refuse to do
>     the reset. In future, we could allow the reset
>     as long as it doesn't affect a device in use by
>     the host or assigned to another guest
> 
>   * The device reset code is similar in concept to
>     some of Xen's code
> 
>   * This code should use libpciaccess - libpci isn't
>     an option because we can't handle malloc failures
>     with it
> 
> Signed-off-by: Mark McLoughlin <markmc at redhat.com>

In absence of any objections, I ACK this patch, because  it is
internal only code we can easily change later as required.



> +/* PM12 3.2.4  Power Management Control/Status (Offset = 4) */
> +#define PCI_PM_CTRL                4    /* PM control and status register */
> +#define  PCI_PM_CTRL_STATE_MASK    0x3  /* Current power state (D0 to D3) */
> +#define  PCI_PM_CTRL_STATE_D0      0x0  /* D0 state */
> +#define  PCI_PM_CTRL_STATE_D3hot   0x3  /* D3 state */
> +#define  PCI_PM_CTRL_NO_SOFT_RESET 0x4  /* No reset for D3hot->D0 */

I've been told off-list, that this last constant should be 0x8 instead
of 0x4


Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list