All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org>
To: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
Cc: kvm-devel <kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: Re: [PATCH 0/8] KVM updates for 2.6.20-rc2
Date: Thu, 28 Dec 2006 11:33:45 +0100	[thread overview]
Message-ID: <20061228103345.GA4708@elte.hu> (raw)
In-Reply-To: <45939755.7010603-atKUWr5tajBWk0Htik3J/w@public.gmane.org>


btw., we've got a problem with KVM in -rt:

 BUG: scheduling while atomic: qemu/0x00000001/11445, CPU#0
  [<c0104fce>] dump_trace+0x63/0x1e8
  [<c010516c>] show_trace_log_lvl+0x19/0x2e
  [<c0105541>] show_trace+0x12/0x14
  [<c0105557>] dump_stack+0x14/0x16
  [<c0322662>] __schedule+0xae/0xd9f
  [<c0323597>] schedule+0xec/0x10f
  [<c0324017>] rt_spin_lock_slowlock+0xd2/0x15b
  [<c03244a6>] rt_spin_lock+0x1e/0x20
  [<c0169d94>] kunmap_high+0x11/0x99
  [<c0121139>] kunmap+0x40/0x42
  [<c0121171>] kunmap_virt+0x36/0x38
  [<f8f017b7>] emulator_read_std+0x92/0xaf [kvm]
  [<f8f05292>] x86_emulate_memop+0xc6/0x295c [kvm]
  [<f8f018c3>] emulate_instruction+0xef/0x202 [kvm]
  [<f8e0f2a7>] handle_exception+0x107/0x1c8 [kvm_intel]
  [<f8e0ef0c>] kvm_vmx_return+0x145/0x18d [kvm_intel]
  [<f8f0253c>] kvm_dev_ioctl+0x253/0xd76 [kvm]
  [<c01874f1>] do_ioctl+0x21/0x66
  [<c018778b>] vfs_ioctl+0x255/0x268
  [<c01877e6>] sys_ioctl+0x48/0x62
  [<c0103f8d>] syscall_call+0x7/0xb
  [<4a4538b2>] 0x4a4538b2

NOTE: this is not a worry for upstream kernel, it is caused by 
PREEMPT_RT scheduling in previously atomic APIs like kunmap(). But KVM 
used to work pretty nicely in -rt and this problem got introduced fairly 
recently, related to some big-page changes IIRC.

Any suggestions of how to best fix this in -rt? Basically, it would be 
nice to decouple KVM from get_cpu/preempt_disable type of interfaces as 
much as possible, to make it fully preemptible. Below are my current 
fixups for KVM, but the problem above looks harder to fix.

	Ingo

---
 drivers/kvm/vmx.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux/drivers/kvm/vmx.c
===================================================================
--- linux.orig/drivers/kvm/vmx.c
+++ linux/drivers/kvm/vmx.c
@@ -117,7 +117,7 @@ static void vmcs_clear(struct vmcs *vmcs
 static void __vcpu_clear(void *arg)
 {
 	struct kvm_vcpu *vcpu = arg;
-	int cpu = smp_processor_id();
+	int cpu = raw_smp_processor_id();
 
 	if (vcpu->cpu == cpu)
 		vmcs_clear(vcpu->vmcs);
@@ -576,7 +576,7 @@ static struct vmcs *alloc_vmcs_cpu(int c
 
 static struct vmcs *alloc_vmcs(void)
 {
-	return alloc_vmcs_cpu(smp_processor_id());
+	return alloc_vmcs_cpu(raw_smp_processor_id());
 }
 
 static void free_vmcs(struct vmcs *vmcs)

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

  parent reply	other threads:[~2006-12-28 10:33 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-28 10:07 [PATCH 0/8] KVM updates for 2.6.20-rc2 Avi Kivity
2006-12-28 10:08 ` [PATCH 1/8] KVM: Use boot_cpu_data instead of current_cpu_data Avi Kivity
2006-12-28 10:09 ` [PATCH 2/8] KVM: Simplify is_long_mode() Avi Kivity
     [not found] ` <45939755.7010603-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-12-28 10:10   ` [PATCH 3/8] KVM: Initialize kvm_arch_ops on unload Avi Kivity
2006-12-28 10:33   ` Ingo Molnar [this message]
     [not found]     ` <20061228103345.GA4708-X9Un+BFzKDI@public.gmane.org>
2006-12-28 11:04       ` [PATCH 0/8] KVM updates for 2.6.20-rc2 Avi Kivity
     [not found]         ` <4593A4B7.2070404-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-12-28 11:23           ` Ingo Molnar
     [not found]             ` <20061228112356.GA14386-X9Un+BFzKDI@public.gmane.org>
2006-12-28 12:21               ` Avi Kivity
2006-12-28 13:15               ` Ingo Molnar
2006-12-28 11:30           ` Ingo Molnar
     [not found]             ` <20061228113038.GA16190-X9Un+BFzKDI@public.gmane.org>
2006-12-28 12:32               ` Avi Kivity
     [not found]                 ` <4593B948.5090009-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-12-28 13:37                   ` Ingo Molnar
     [not found]                     ` <20061228133746.GC3392-X9Un+BFzKDI@public.gmane.org>
2006-12-28 13:49                       ` Avi Kivity
     [not found]                         ` <4593CB61.5050709-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-12-28 13:50                           ` Ingo Molnar
     [not found]                             ` <20061228135020.GA7606-X9Un+BFzKDI@public.gmane.org>
2006-12-28 13:58                               ` Avi Kivity
     [not found]                                 ` <4593CD74.6060202-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-12-28 14:07                                   ` Ingo Molnar
     [not found]                                     ` <20061228140742.GA10033-X9Un+BFzKDI@public.gmane.org>
2006-12-28 14:18                                       ` Avi Kivity
     [not found]                                         ` <4593D243.1030301-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-12-28 15:01                                           ` Ingo Molnar
     [not found]                                             ` <20061228150104.GB16057-X9Un+BFzKDI@public.gmane.org>
2006-12-28 15:09                                               ` Avi Kivity
     [not found]                                                 ` <4593DE1D.8010701-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-12-28 15:11                                                   ` Ingo Molnar
     [not found]                                                     ` <20061228151159.GA20279-X9Un+BFzKDI@public.gmane.org>
2006-12-28 15:25                                                       ` Avi Kivity
     [not found]                                                         ` <4593E1E3.2020800-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-12-28 15:28                                                           ` Avi Kivity
2006-12-28 10:11 ` [PATCH 4/8] KVM: Implement a few system configuration msrs Avi Kivity
2006-12-28 10:11   ` Avi Kivity
2007-01-01  0:07   ` Ingo Oeser
2007-01-01  0:07     ` Ingo Oeser
2007-01-01  8:20     ` Avi Kivity
2007-01-01  8:20       ` Avi Kivity
2006-12-28 10:12 ` [PATCH 5/8] KVM: Move common msr handling to arch independent code Avi Kivity
2006-12-28 10:13 ` [PATCH 6/8] KVM: More msr misery Avi Kivity
2006-12-28 10:14 ` [PATCH 7/8] KVM: Rename some msrs Avi Kivity
2006-12-28 10:14   ` Avi Kivity
2006-12-28 10:15 ` [PATCH 8/8] KVM: Fix oops on oom Avi Kivity
2006-12-28 10:15   ` Avi Kivity
2006-12-28 12:42 ` [patch] kvm: fix GFP_KERNEL allocation in atomic section in kvm_dev_ioctl_create_vcpu() Ingo Molnar
2006-12-28 12:42   ` Ingo Molnar
2006-12-28 12:56   ` Avi Kivity
2006-12-28 12:55     ` Ingo Molnar
2006-12-28 13:08       ` [patch, try#2] " Ingo Molnar
2006-12-28 13:08         ` Ingo Molnar
2006-12-28 13:14         ` Avi Kivity
2006-12-28 13:23           ` Ingo Molnar
2006-12-28 13:30             ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061228103345.GA4708@elte.hu \
    --to=mingo-x9un+bfzkdi@public.gmane.org \
    --cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.