Re: [PATCH] KVM: Fix assigned device with no irq

2009-05-07 Thread Avi Kivity

Sheng Yang wrote:

Some device like VF of SRIOV only support MSI-X.

With this patch, SRIOV can be enabled with KVM assigned device(all kernel space
patches are ready).

  


Just noticed I missed this patch.  Is it still needed or is it obsolete?



diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 4d2be16..ce80f3a 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -217,8 +217,11 @@ static void kvm_free_assigned_irq(struct kvm *kvm,
kvm_free_irq_source_id(kvm, assigned_dev-irq_source_id);
assigned_dev-irq_source_id = -1;
 
-	if (!assigned_dev-irq_requested_type)

+   if (!assigned_dev-irq_requested_type) {
+   if (assigned_dev-dev-msi_enabled)
+   pci_disable_msi(assigned_dev-dev);
return;
+   }
 
 	/*

 * In kvm_free_device_irq, cancel_work_sync return true if:
@@ -308,6 +311,10 @@ static int assigned_device_update_intx(struct kvm *kvm,
if (adev-irq_requested_type  KVM_ASSIGNED_DEV_HOST_INTX)
return 0;
 
+	/* IRQ 0 means uninitialized here */

+   if (airq-host_irq == 0)
+   return 0;
+
if (irqchip_in_kernel(kvm)) {
if (!msi2intx 
(adev-irq_requested_type  KVM_ASSIGNED_DEV_HOST_MSI)) {
@@ -529,9 +536,8 @@ static int kvm_vm_ioctl_assign_irq(struct kvm *kvm,
r = 0;
} else {
printk(KERN_WARNING
-  kvm: failed to enable MSI device!\n);
-   r = -ENOTTY;
-   goto out_release;
+  kvm: device didn't support INTx or MSI!\n);
+   r = 0;
}
} else {
/* Non-sharing INTx mode */
  



--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] KVM: Fix assigned device with no irq

2009-05-07 Thread Marcelo Tosatti
On Thu, May 07, 2009 at 03:24:15PM +0300, Avi Kivity wrote:
 Sheng Yang wrote:
 Some device like VF of SRIOV only support MSI-X.

 With this patch, SRIOV can be enabled with KVM assigned device(all kernel 
 space
 patches are ready).

   

 Just noticed I missed this patch.  Is it still needed or is it obsolete?

I think its obsolete. 


 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
 index 4d2be16..ce80f3a 100644
 --- a/virt/kvm/kvm_main.c
 +++ b/virt/kvm/kvm_main.c
 @@ -217,8 +217,11 @@ static void kvm_free_assigned_irq(struct kvm *kvm,
  kvm_free_irq_source_id(kvm, assigned_dev-irq_source_id);
  assigned_dev-irq_source_id = -1;
  -   if (!assigned_dev-irq_requested_type)
 +if (!assigned_dev-irq_requested_type) {
 +if (assigned_dev-dev-msi_enabled)
 +pci_disable_msi(assigned_dev-dev);
  return;
 +}
  /*
   * In kvm_free_device_irq, cancel_work_sync return true if:
 @@ -308,6 +311,10 @@ static int assigned_device_update_intx(struct kvm *kvm,
  if (adev-irq_requested_type  KVM_ASSIGNED_DEV_HOST_INTX)
  return 0;
  +   /* IRQ 0 means uninitialized here */
 +if (airq-host_irq == 0)
 +return 0;
 +
  if (irqchip_in_kernel(kvm)) {
  if (!msi2intx 
  (adev-irq_requested_type  KVM_ASSIGNED_DEV_HOST_MSI)) {
 @@ -529,9 +536,8 @@ static int kvm_vm_ioctl_assign_irq(struct kvm *kvm,
  r = 0;
  } else {
  printk(KERN_WARNING
 -   kvm: failed to enable MSI device!\n);
 -r = -ENOTTY;
 -goto out_release;
 +   kvm: device didn't support INTx or MSI!\n);
 +r = 0;
  }
  } else {
  /* Non-sharing INTx mode */
   


 -- 
 error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] KVM: Fix assigned device with no irq

2009-05-07 Thread Sheng Yang
On Thursday 07 May 2009 20:28:12 Marcelo Tosatti wrote:
 On Thu, May 07, 2009 at 03:24:15PM +0300, Avi Kivity wrote:
  Sheng Yang wrote:
  Some device like VF of SRIOV only support MSI-X.
 
  With this patch, SRIOV can be enabled with KVM assigned device(all
  kernel space patches are ready).
 
  Just noticed I missed this patch.  Is it still needed or is it obsolete?

 I think its obsolete.

Yeah, it have been fixed from another direct in userspace: Interrupt pin =0 
means it haven't been initialized.

-- 
regards
Yang, Sheng


  diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
  index 4d2be16..ce80f3a 100644
  --- a/virt/kvm/kvm_main.c
  +++ b/virt/kvm/kvm_main.c
  @@ -217,8 +217,11 @@ static void kvm_free_assigned_irq(struct kvm *kvm,
 kvm_free_irq_source_id(kvm, assigned_dev-irq_source_id);
 assigned_dev-irq_source_id = -1;
   - if (!assigned_dev-irq_requested_type)
  +  if (!assigned_dev-irq_requested_type) {
  +  if (assigned_dev-dev-msi_enabled)
  +  pci_disable_msi(assigned_dev-dev);
 return;
  +  }
 /*
  * In kvm_free_device_irq, cancel_work_sync return true if:
  @@ -308,6 +311,10 @@ static int assigned_device_update_intx(struct kvm
  *kvm, if (adev-irq_requested_type  KVM_ASSIGNED_DEV_HOST_INTX)
 return 0;
   + /* IRQ 0 means uninitialized here */
  +  if (airq-host_irq == 0)
  +  return 0;
  +
 if (irqchip_in_kernel(kvm)) {
 if (!msi2intx 
 (adev-irq_requested_type  KVM_ASSIGNED_DEV_HOST_MSI)) {
  @@ -529,9 +536,8 @@ static int kvm_vm_ioctl_assign_irq(struct kvm *kvm,
 r = 0;
 } else {
 printk(KERN_WARNING
  - kvm: failed to enable MSI device!\n);
  -  r = -ENOTTY;
  -  goto out_release;
  + kvm: device didn't support INTx or MSI!\n);
  +  r = 0;
 }
 } else {
 /* Non-sharing INTx mode */
 
  --
  error compiling committee.c: too many arguments to function


--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] KVM: Fix assigned device with no irq

2009-03-03 Thread Sheng Yang
On Tuesday 03 March 2009 15:49:19 Sheng Yang wrote:
 Some device like VF of SRIOV only support MSI-X.

 With this patch, SRIOV can be enabled with KVM assigned device(all kernel
 space patches are ready).

Withdraw this as well.

-- 
regards
Yang, Sheng

 Signed-off-by: Sheng Yang sh...@linux.intel.com
 ---
  virt/kvm/kvm_main.c |9 ++---
  1 files changed, 6 insertions(+), 3 deletions(-)

 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
 index 4d2be16..5dc6423 100644
 --- a/virt/kvm/kvm_main.c
 +++ b/virt/kvm/kvm_main.c
 @@ -308,6 +308,10 @@ static int assigned_device_update_intx(struct kvm
 *kvm, if (adev-irq_requested_type  KVM_ASSIGNED_DEV_HOST_INTX)
   return 0;

 + /* IRQ 0 means uninitialized */
 + if (adev-host_irq == 0)
 + return 0;
 +
   if (irqchip_in_kernel(kvm)) {
   if (!msi2intx 
   (adev-irq_requested_type  KVM_ASSIGNED_DEV_HOST_MSI)) {
 @@ -529,9 +533,8 @@ static int kvm_vm_ioctl_assign_irq(struct kvm *kvm,
   r = 0;
   } else {
   printk(KERN_WARNING
 -kvm: failed to enable MSI device!\n);
 - r = -ENOTTY;
 - goto out_release;
 +kvm: device didn't support INTx or MSI!\n);
 + r = 0;
   }
   } else {
   /* Non-sharing INTx mode */


--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html