Re: [Qemu-devel] FLR capability hidden in VF config space

2012-02-24 Thread rukhsana ansari
Thanks Alex. Pls see my responses below:

On Thu, Feb 23, 2012 at 9:34 PM, Alex Williamson alex.william...@redhat.com
 wrote:

 On Thu, 2012-02-23 at 09:25 +0530, rukhsana ansari wrote:
  Hello,
 
  Was wondering whether someone could shed some light on the issue below.
  Without FLR exposed in the VF, VF reset via FLR cannot be initiated from
  the guest.
  Appreciate any pointers.

 The device state needs to be restored after an FLR.  A guest is not able
 to do this by this by itself as much of the config space is virtualized.
 That means qemu needs to be involved in the FLR.  It's possible we could
 trap FLR and call reset_assign_device().  Patches welcome.  Why do want
 to reset the device?


[RA] While trying to figure out what the reason for not exposing FLR in VF,
I had missed out what you brought up about the VF config space being
virtualized.
The reason for looking at  FLR support in VF (apart from ease of testing
using setpci) is as a possible replacement of driver specific mechanism to
initiate software FLR (for example via mailbox mechanism) when VF
driver get a shutdown call.
But given the issue with config space being virtualized, it makes sense to
continue with the current approach

 
  The following code snippet (line 1457,
  function:assigned_device_pci_cap_init()  file: hw/device-assignment.c)
  from the latest qemu-kvm git (qemu-kvm-devel: 1.0.50)  implies that FLR
  capability is unset for VF that is assigned to a guest:
 
  /* device capabilities: hide FLR */
  devcap = pci_get_long(pci_dev-config + pos + PCI_EXP_DEVCAP);
  devcap = ~PCI_EXP_DEVCAP_FLR;
  pci_set_long(pci_dev-config + pos + PCI_EXP_DEVCAP, devcap);
 
 
  However the SR-IOV spec mandates VF FLR.

The SR-IOV spec mandates that the VF supports FLR.  That doesn't mean it
 has to be exposed though to a guest.  Thanks,


[RA] Yes, point noted.


-- 
-Rukhsana


Re: [Qemu-devel] FLR capability hidden in VF config space

2012-02-23 Thread Alex Williamson
On Thu, 2012-02-23 at 09:25 +0530, rukhsana ansari wrote:
 Hello,
 
 Was wondering whether someone could shed some light on the issue below.
 Without FLR exposed in the VF, VF reset via FLR cannot be initiated from
 the guest.
 Appreciate any pointers.

The device state needs to be restored after an FLR.  A guest is not able
to do this by this by itself as much of the config space is virtualized.
That means qemu needs to be involved in the FLR.  It's possible we could
trap FLR and call reset_assign_device().  Patches welcome.  Why do want
to reset the device?

 On Wed, Feb 15, 2012 at 2:54 PM, rukhsana ansari ruk.ans...@gmail.comwrote:
 
  Hi,
 
  The following code snippet (line 1457,
  function:assigned_device_pci_cap_init()  file: hw/device-assignment.c)
  from the latest qemu-kvm git (qemu-kvm-devel: 1.0.50)  implies that FLR
  capability is unset for VF that is assigned to a guest:
 
  /* device capabilities: hide FLR */
  devcap = pci_get_long(pci_dev-config + pos + PCI_EXP_DEVCAP);
  devcap = ~PCI_EXP_DEVCAP_FLR;
  pci_set_long(pci_dev-config + pos + PCI_EXP_DEVCAP, devcap);
 
 
  However the SR-IOV spec mandates VF FLR.

The SR-IOV spec mandates that the VF supports FLR.  That doesn't mean it
has to be exposed though to a guest.  Thanks,

Alex




Re: [Qemu-devel] FLR capability hidden in VF config space

2012-02-22 Thread rukhsana ansari
Hello,

Was wondering whether someone could shed some light on the issue below.
Without FLR exposed in the VF, VF reset via FLR cannot be initiated from
the guest.
Appreciate any pointers.

Thanks,
Rukhsana
On Wed, Feb 15, 2012 at 2:54 PM, rukhsana ansari ruk.ans...@gmail.comwrote:

 Hi,

 The following code snippet (line 1457,
 function:assigned_device_pci_cap_init()  file: hw/device-assignment.c)
 from the latest qemu-kvm git (qemu-kvm-devel: 1.0.50)  implies that FLR
 capability is unset for VF that is assigned to a guest:

 /* device capabilities: hide FLR */
 devcap = pci_get_long(pci_dev-config + pos + PCI_EXP_DEVCAP);
 devcap = ~PCI_EXP_DEVCAP_FLR;
 pci_set_long(pci_dev-config + pos + PCI_EXP_DEVCAP, devcap);


 However the SR-IOV spec mandates VF FLR.
 Could someone explain the reason for unsetting the FLR bit in the PCI
 Express device capabilities register of the VF?

 Thanks
 -Rukhsana



[Qemu-devel] FLR capability hidden in VF config space

2012-02-15 Thread rukhsana ansari
Hi,

The following code snippet (line 1457,
function:assigned_device_pci_cap_init()  file: hw/device-assignment.c)
from the latest qemu-kvm git (qemu-kvm-devel: 1.0.50)  implies that FLR
capability is unset for VF that is assigned to a guest:

/* device capabilities: hide FLR */
devcap = pci_get_long(pci_dev-config + pos + PCI_EXP_DEVCAP);
devcap = ~PCI_EXP_DEVCAP_FLR;
pci_set_long(pci_dev-config + pos + PCI_EXP_DEVCAP, devcap);


However the SR-IOV spec mandates VF FLR.
Could someone explain the reason for unsetting the FLR bit in the PCI
Express device capabilities register of the VF?

Thanks
-Rukhsana