Re: [RFC/PATCH 1/1] s390/kvm: Fix BUG in include/linux/kvm_host.h:745

2013-01-10 Thread Marcelo Tosatti
On Tue, Jan 08, 2013 at 04:23:10PM +0100, Christian Borntraeger wrote:
 commit b080935c8638e08134629d0a9ebdf35669bec14d
 kvm: Directly account vtime to system on guest switch
 
 also removed the irq_disable/enable around kvm guest switch, which
 is correct in itself. Unfortunately, there is a BUG ON that (correctly)
 checks for preemptible to cover the call to rcu later on.
 (Introduced with commit 8fa2206821953a50a3a02ea33fcfb3ced2fd9997
 KVM: make guest mode entry to be rcu quiescent state)
 
 This check might trigger depending on the kernel config.
 Lets make sure that no preemption happens during kvm_guest_enter.
 We can enable preemption again after the call to
 rcu_virt_note_context_switch returns.
 
 Please note that we continue to run s390 guests with interrupts
 enabled.
 
 CC: Frederic Weisbecker fweis...@gmail.com
 CC: Gleb Natapov g...@redhat.com
 Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com

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


[RFC/PATCH 1/1] s390/kvm: Fix BUG in include/linux/kvm_host.h:745

2013-01-08 Thread Christian Borntraeger
commit b080935c8638e08134629d0a9ebdf35669bec14d
kvm: Directly account vtime to system on guest switch

also removed the irq_disable/enable around kvm guest switch, which
is correct in itself. Unfortunately, there is a BUG ON that (correctly)
checks for preemptible to cover the call to rcu later on.
(Introduced with commit 8fa2206821953a50a3a02ea33fcfb3ced2fd9997
KVM: make guest mode entry to be rcu quiescent state)

This check might trigger depending on the kernel config.
Lets make sure that no preemption happens during kvm_guest_enter.
We can enable preemption again after the call to
rcu_virt_note_context_switch returns.

Please note that we continue to run s390 guests with interrupts
enabled.

CC: Frederic Weisbecker fweis...@gmail.com
CC: Gleb Natapov g...@redhat.com
Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
---
 arch/s390/kvm/kvm-s390.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index c9011bf..f090e81 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -613,7 +613,9 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
kvm_s390_deliver_pending_interrupts(vcpu);
 
vcpu-arch.sie_block-icptcode = 0;
+   preempt_disable();
kvm_guest_enter();
+   preempt_enable();
VCPU_EVENT(vcpu, 6, entering sie flags %x,
   atomic_read(vcpu-arch.sie_block-cpuflags));
trace_kvm_s390_sie_enter(vcpu,
-- 
1.7.11.4

--
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: [RFC/PATCH 1/1] s390/kvm: Fix BUG in include/linux/kvm_host.h:745

2013-01-08 Thread Frederic Weisbecker
2013/1/8 Christian Borntraeger borntrae...@de.ibm.com:
 commit b080935c8638e08134629d0a9ebdf35669bec14d
 kvm: Directly account vtime to system on guest switch

 also removed the irq_disable/enable around kvm guest switch, which
 is correct in itself. Unfortunately, there is a BUG ON that (correctly)
 checks for preemptible to cover the call to rcu later on.
 (Introduced with commit 8fa2206821953a50a3a02ea33fcfb3ced2fd9997
 KVM: make guest mode entry to be rcu quiescent state)

 This check might trigger depending on the kernel config.
 Lets make sure that no preemption happens during kvm_guest_enter.
 We can enable preemption again after the call to
 rcu_virt_note_context_switch returns.

 Please note that we continue to run s390 guests with interrupts
 enabled.

 CC: Frederic Weisbecker fweis...@gmail.com
 CC: Gleb Natapov g...@redhat.com
 Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
 ---
  arch/s390/kvm/kvm-s390.c | 2 ++
  1 file changed, 2 insertions(+)

 diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
 index c9011bf..f090e81 100644
 --- a/arch/s390/kvm/kvm-s390.c
 +++ b/arch/s390/kvm/kvm-s390.c
 @@ -613,7 +613,9 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
 kvm_s390_deliver_pending_interrupts(vcpu);

 vcpu-arch.sie_block-icptcode = 0;
 +   preempt_disable();
 kvm_guest_enter();
 +   preempt_enable();

Sorry for the issue.

The fix looks good to me, thanks!

Acked-by: Frederic Weisbecker fweis...@gmail.com
--
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