Re: [PATCH] kvm-390: fix wait_queue handling

2009-07-20 Thread Marcelo Tosatti
On Thu, Jul 16, 2009 at 05:17:37PM +0200, Christian Bornträger wrote:
 From: Christian Borntraeger borntrae...@de.ibm.com
 
 There are two waitqueues in kvm for wait handling:
 vcpu-wq for virt/kvm/kvm_main.c and
 vpcu-arch.local_int.wq for the s390 specific wait code.
 
 the wait handling in kvm_s390_handle_wait was broken by using different
 wait_queues for add_wait queue and remove_wait_queue.
 
 There are two options to fix the problem: 
 o  move all the s390 specific code to vcpu-wq and remove
vcpu-arch.local_int.wq
 o  move all the s390 specific code to vcpu-arch.local_int.wq
 
 This patch chooses the 2nd variant for two reasons:
 o  s390 does not use kvm_vcpu_block but implements its own enabled wait
handling.
Having a separate wait_queue make it clear, that our wait mechanism is
different
 o  the patch is much smaller
 
 Report-by:  Julia Lawall ju...@diku.dk
 Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
 ---
  arch/s390/kvm/interrupt.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 Index: kvm/arch/s390/kvm/interrupt.c
 ===
 --- kvm.orig/arch/s390/kvm/interrupt.c
 +++ kvm/arch/s390/kvm/interrupt.c
 @@ -386,7 +386,7 @@ no_timer:
   }
   __unset_cpu_idle(vcpu);
   __set_current_state(TASK_RUNNING);
 - remove_wait_queue(vcpu-wq, wait);
 + remove_wait_queue(vcpu-arch.local_int.wq, wait);
   spin_unlock_bh(vcpu-arch.local_int.lock);
   spin_unlock(vcpu-arch.local_int.float_int-lock);
   hrtimer_try_to_cancel(vcpu-arch.ckc_timer);

Applied, thanks.

--
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


[PATCH] kvm-390: fix wait_queue handling

2009-07-16 Thread Christian Bornträger
From: Christian Borntraeger borntrae...@de.ibm.com

There are two waitqueues in kvm for wait handling:
vcpu-wq for virt/kvm/kvm_main.c and
vpcu-arch.local_int.wq for the s390 specific wait code.

the wait handling in kvm_s390_handle_wait was broken by using different
wait_queues for add_wait queue and remove_wait_queue.

There are two options to fix the problem: 
o  move all the s390 specific code to vcpu-wq and remove
   vcpu-arch.local_int.wq
o  move all the s390 specific code to vcpu-arch.local_int.wq

This patch chooses the 2nd variant for two reasons:
o  s390 does not use kvm_vcpu_block but implements its own enabled wait
   handling.
   Having a separate wait_queue make it clear, that our wait mechanism is
   different
o  the patch is much smaller

Report-by:  Julia Lawall ju...@diku.dk
Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
---
 arch/s390/kvm/interrupt.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: kvm/arch/s390/kvm/interrupt.c
===
--- kvm.orig/arch/s390/kvm/interrupt.c
+++ kvm/arch/s390/kvm/interrupt.c
@@ -386,7 +386,7 @@ no_timer:
}
__unset_cpu_idle(vcpu);
__set_current_state(TASK_RUNNING);
-   remove_wait_queue(vcpu-wq, wait);
+   remove_wait_queue(vcpu-arch.local_int.wq, wait);
spin_unlock_bh(vcpu-arch.local_int.lock);
spin_unlock(vcpu-arch.local_int.float_int-lock);
hrtimer_try_to_cancel(vcpu-arch.ckc_timer);

--
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