From: Jan Kiszka <jan.kiszka@web.de>
To: "\"李春奇 <Arthur Chunqi Li>\"" <yzt356@gmail.com>
Cc: qemu-devel@nongnu.org, kvm <kvm@vger.kernel.org>
Subject: Re: CPU vendor in KVM
Date: Sat, 04 May 2013 11:01:59 +0200 [thread overview]
Message-ID: <5184CE87.5050601@web.de> (raw)
In-Reply-To: <CABpY8M+nSY_tq+8pvC47UGJVgD+CpUusEwj51=kVOcm3vSTA7Q@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3131 bytes --]
On 2013-05-04 10:52, 李春奇 <Arthur Chunqi Li> wrote:
> On Sat, May 4, 2013 at 4:47 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
>> Please don't top-post.
>>
>> On 2013-05-04 10:45, 李春奇 <Arthur Chunqi Li> wrote:
>>> But will the difference between the vendor ID and family number cause
>>> confusion to the OS in VM?
>>
>> The confusion is not yet clear to me. About which "-cpu ..." were you
>> talking?
>>
>> Jan
>>
>>>
>>> On Sat, May 4, 2013 at 4:05 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
>>>> On 2013-05-04 09:50, 李春奇 <Arthur Chunqi Li> wrote:
>>>>> Hi Jan and All,
>>>>> I find that when enable KVM with qemu, vendor ID of simulated CPU will be
>>>>> set the same as host, but other features such as level, family, model,
>>>>> stepping are not changed. This may bring out a confusing result, the
>>>>> simulated CPU has a vendor name of "GenuineIntel" but with family number
>>>>> "16".
>>>>>
>>>>> I disabled the related code in function cpu_x86_find_by_name:
>>>>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>>>>> index e2302d8..df0e82e 100644
>>>>> --- a/target-i386/cpu.c
>>>>> +++ b/target-i386/cpu.c
>>>>> @@ -1295,7 +1295,8 @@ static int cpu_x86_find_by_name(x86_def_t
>>>>> *x86_cpu_def, const char *name)
>>>>> * KVM's sysenter/syscall emulation in compatibility mode and
>>>>> * when doing cross vendor migration
>>>>> */
>>>>> - if (kvm_enabled()) {
>>>>> + //if (kvm_enabled()) {
>>>>> + if (0) {
>>>>> uint32_t ebx = 0, ecx = 0, edx = 0;
>>>>> host_cpuid(0, 0, NULL, &ebx, &ecx, &edx);
>>>>> x86_cpu_vendor_words2str(x86_cpu_def->vendor, ebx, edx,
>>>>> ecx);
>>>>>
>>>>> And the information of CPU remains consistent and the VM runs OK, even
>>>>> though with nested environment.
>>>>>
>>>>> Why should qemu set simulated cpu's vendor same as the host in KVM
>>>>> environment?
>>>>
>>>> The reason (and a way out) is given in the comment above the cited code.
>>>>
>>>> Jan
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
> I use -cpu Opteron_G1, and got the following message in VM:
> root@kvm1:~# cat /proc/cpuinfo
> processor : 0
> vendor_id : GenuineIntel
> cpu family : 15
> model : 6
> model name : AMD Opteron 240 (Gen 1 Class Opteron)
> stepping : 1
> microcode : 0x1
> cpu MHz : 2393.998
> cache size : 4096 KB
> fpu : yes
> fpu_exception : yes
> cpuid level : 5
> wp : yes
> flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
> pse36 clflush mmx fxsr sse sse2 syscall nx lm constant_tsc nopl pni
> hypervisor
> bogomips : 4787.99
> clflush size : 64
> cache_alignment : 128
> address sizes : 40 bits physical, 48 bits virtual
> power management:
>
> The vendor_id is not consistent to the following messages.
The reason is what the comment says: Avoid that the guest picks a
suboptimal syscall mechanism that may have to be emulated by KVM all the
time. Obviously, this causes no problems with common guests as it is
done like this since day #1.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
prev parent reply other threads:[~2013-05-04 9:02 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-04 7:50 CPU vendor in KVM 李春奇 <Arthur Chunqi Li>
2013-05-04 8:05 ` Jan Kiszka
2013-05-04 8:45 ` 李春奇 <Arthur Chunqi Li>
2013-05-04 8:47 ` Jan Kiszka
2013-05-04 8:52 ` 李春奇 <Arthur Chunqi Li>
2013-05-04 9:01 ` Jan Kiszka [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=5184CE87.5050601@web.de \
--to=jan.kiszka@web.de \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=yzt356@gmail.com \
/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