From: Anthony Liguori <anthony@codemonkey.ws>
To: Bharata B Rao <bharata.rao@gmail.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>,
qemu-devel@nongnu.org, Avi Kivity <avi@redhat.com>
Subject: Re: [Qemu-devel] [FIX] X86 CPU topology broken in KVM mode
Date: Wed, 07 Sep 2011 07:59:51 -0500 [thread overview]
Message-ID: <4E676AC7.7030405@codemonkey.ws> (raw)
In-Reply-To: <CAGZKiBr0G-boxFCmt-mL9Qu56Ubn3tkSndCHiNz79tB094L7xw@mail.gmail.com>
On 09/06/2011 11:21 PM, Bharata B Rao wrote:
> Hi,
>
> Sometime back I posted a patch for fixing x86 CPU topology (
> http://lists.gnu.org/archive/html/qemu-devel/2011-08/msg02022.html).
> Here is the next version of the fix which addresses all but one
> comment received during that post.
>
> - Fixed code style issues
> - Ensured that the fix doesn't break TCG mode
> - I am not sure what is the problem with i486 as I haven't been able
> to boot an i486 VM successfully, hence haven't attempted to fix this.
>
> I have tested following scenarios and found the fix to be working fine.
>
> KVM: (with --enable-kvm)
> -smp sockets=1,cores=4,threads=2
> -smp sockets=4,cores=4,threads=2
> -cpu core2duo sockets=1,cores=4,threads=2
> -cpu core2duo sockets=2,cores=4,threads=2
>
> TCG: (without --enable-kvm)
> -cpu core2duo sockets=1,cores=4,threads=2
> -cpu core2duo sockets=2,cores=4,threads=2
>
> Here is the updated patch which now applies against qemu.git.
>
> ********************
> Fix apic id enumeration
>
> apic id returned to guest kernel in ebx for cpuid(function=1) depends on
> CPUX86State->cpuid_apic_id which gets populated after the cpuid information
> is cached in the host kernel.
>
> Fix this by setting cpuid_apic_id before cpuid information is passed to
> the host kernel. This is done by moving the setting of cpuid_apic_id
> to cpu_x86_init() where it will work for both KVM as well as TCG modes.
>
> Signed-off-by: Bharata B Rao<bharata.rao@gmail.com>
Please post patches as top-level threads with [PATCH] in the subject.
Please use git diff or better yet, git-send-email.
Regards,
Anthony Liguori
> ---
> hw/pc.c | 1 -
> target-i386/helper.c | 5 +++++
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> Index: qemu/hw/pc.c
> ===================================================================
> --- qemu.orig/hw/pc.c
> +++ qemu/hw/pc.c
> @@ -933,7 +933,6 @@ static CPUState *pc_new_cpu(const char *
> exit(1);
> }
> if ((env->cpuid_features& CPUID_APIC) || smp_cpus> 1) {
> - env->cpuid_apic_id = env->cpu_index;
> env->apic_state = apic_init(env, env->cpuid_apic_id);
> }
> qemu_register_reset(pc_cpu_reset, env);
> Index: qemu/target-i386/helper.c
> ===================================================================
> --- qemu.orig/target-i386/helper.c
> +++ qemu/target-i386/helper.c
> @@ -1256,6 +1256,11 @@ CPUX86State *cpu_x86_init(const char *cp
> cpu_x86_close(env);
> return NULL;
> }
> +
> + if (env->cpuid_features& CPUID_APIC) {
> + env->cpuid_apic_id = env->cpu_index;
> + }
> +
> mce_init(env);
>
> qemu_init_vcpu(env);
> *************************
>
> Regards,
> Bharata.
> --
> http://bharata.sulekha.com/blog/posts.htm, http://raobharata.wordpress.com/
>
next prev parent reply other threads:[~2011-09-07 13:00 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-07 4:21 [Qemu-devel] [FIX] X86 CPU topology broken in KVM mode Bharata B Rao
2011-09-07 8:07 ` Jan Kiszka
2011-09-07 8:19 ` Bharata B Rao
2011-09-07 8:33 ` Jan Kiszka
2011-09-07 12:59 ` Anthony Liguori [this message]
2011-09-07 13:24 ` Bharata B Rao
2011-09-07 13:29 ` Anthony Liguori
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=4E676AC7.7030405@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=bharata.rao@gmail.com \
--cc=jan.kiszka@siemens.com \
--cc=qemu-devel@nongnu.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.