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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2013/1/8 Christian Borntraeger <borntraeger@xxxxxxxxxx>:
> 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 <fweisbec@xxxxxxxxx>
> CC: Gleb Natapov <gleb@xxxxxxxxxx>
> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
> ---
>  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 <fweisbec@xxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux