From: Marcelo Tosatti <mtosatti@redhat.com>
To: Gleb Natapov <gleb@redhat.com>
Cc: kvm <kvm@vger.kernel.org>
Subject: Re: KVM: init bsp_vcpu before kvm_arch_vcpu_init
Date: Wed, 17 Jun 2009 10:07:59 -0300 [thread overview]
Message-ID: <20090617130759.GA14234@amt.cnet> (raw)
In-Reply-To: <20090617122905.GB19508@redhat.com>
On Wed, Jun 17, 2009 at 03:29:05PM +0300, Gleb Natapov wrote:
> On Tue, Jun 16, 2009 at 11:33:16AM -0300, Marcelo Tosatti wrote:
> >
> > On x86 mp_state is initialized by kvm_arch_vcpu_init. Right
> > now kvm_vcpu_is_bsp returns false because kvm->bsp_vcpu has
> > not been initialized, so vcpu_id == 0 ends up with mp_state ==
> > KVM_MP_STATE_UNINITIALIZED.
> >
> > Gleb do you see a better way to fix this?
> >
> I have two, not necessary better ways. The first one is to change
> kvm_vcpu_is_bsp() to do kvm->bsp_vcpu_id == vcpu->vcpu_id.
Thats much better.
> Another one is to understand why mp_state is set to runnable for bsp
> here at all. May be we can drop this use of kvm_vcpu_is_bsp() since
> mp_state will be set to RUNNABLE in kvm_arch_vcpu_ioctl_set_sregs()
> anyway?
Testcase is kvmctl without -p, which does not do
kvm_arch_vcpu_ioctl_set_sregs. I suppose that is valid? (in practice its
no big deal since kvmctl can be updated, and qemu-kvm does set_sregs,
but..).
KVM: use vcpu_id instead of bsp_vcpu pointer in kvm_vcpu_is_bsp
Change kvm_vcpu_is_bsp to use vcpu_id instead of bsp_vcpu pointer, which
is only initialized at the end of kvm_vm_ioctl_create_vcpu.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 1b48092..026ed0a 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -569,7 +569,7 @@ static inline void kvm_irqfd_release(struct kvm *kvm) {}
#ifdef CONFIG_KVM_APIC_ARCHITECTURE
static inline bool kvm_vcpu_is_bsp(struct kvm_vcpu *vcpu)
{
- return vcpu->kvm->bsp_vcpu == vcpu;
+ return vcpu->kvm->bsp_vcpu_id == vcpu->vcpu_id;
}
#endif
#endif
next prev parent reply other threads:[~2009-06-17 13:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-16 14:33 KVM: init bsp_vcpu before kvm_arch_vcpu_init Marcelo Tosatti
2009-06-17 12:29 ` Gleb Natapov
2009-06-17 13:07 ` Marcelo Tosatti [this message]
2009-06-17 13:58 ` Gleb Natapov
2009-06-29 12:39 ` 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=20090617130759.GA14234@amt.cnet \
--to=mtosatti@redhat.com \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.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.