From: Avi Kivity <avi@redhat.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [6567] KVM: Get all cpuid values from function 2 (Amit Shah)
Date: Mon, 09 Feb 2009 20:27:56 +0200 [thread overview]
Message-ID: <499075AC.6070104@redhat.com> (raw)
In-Reply-To: <49905DE1.7070808@codemonkey.ws>
Anthony Liguori wrote:
>>
>> Note that if we are rescheduled on another cpu, or if another process
>> calls cpuid 2 during the loop on the same cpu, this will break.
>
> That's unfortunate. If cpuid values can differ for individual
> processors, than I don't see a great way to avoid this problem in
> general.
The problem is not mismatched cpus, it's hidden state within the cpu.
If you look at the code, it just calls cpuid(2) repeatedly, and expects
different results for the same inputs. That means the cpuid code in the
cpu looks something like this:
if (function == 2) {
switch (hidden_function_2_state++) {
// return different results
}
}
this hidden state is of course not maintained across context switches.
Only the kernel can extract this information reliably. Note that we
also need save this hidden state as part of savevm.
The word "unfortunate" doesn't even begin to describe it, even if one
favors understatements.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
prev parent reply other threads:[~2009-02-09 18:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-09 15:50 [Qemu-devel] [6567] KVM: Get all cpuid values from function 2 (Amit Shah) Anthony Liguori
2009-02-09 16:06 ` Avi Kivity
2009-02-09 16:46 ` Anthony Liguori
2009-02-09 17:03 ` Amit Shah
2009-02-09 18:27 ` Avi Kivity [this message]
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=499075AC.6070104@redhat.com \
--to=avi@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).