Skip to contentSkip to conversation

Add Core 2 Duo CPU specification

PATCH In review Alexander Graf 3 participants 7 messages Aug 11, 2008 – Aug 21, 2008

lore
Share & tools
lore
#0 lore raw

cover Add Core 2 Duo CPU specification

Hi,

this set of patches attempts to implement a CPU definition set for current Intel CPUs that resembles an original as closely as currently possible. Several features a current Intel CPU has are not implemented by qemu, but that should not keep us from adding this definition so people can add features later on.

As a side effect, I made the sysenter instruction 64-bit aware. This was an issue in KVM, that used the 32-bit cpu struct variables to hold 64-bit MSR values sysenter needs. I believe it to be a step in the right direction to not fix this only for KVM, but make the functionality available to qemu as well.

Alex

#1 lore raw
Quoted 5 lines · Alexander Graf

Hi,

this set of patches attempts to implement a CPU definition set for current Intel CPUs that resembles an original as closely as currently possible. Several features a current Intel CPU has are not implemented by qemu, but that should not keep us from adding this definition so people can add features later on.

As a side effect, I made the sysenter instruction 64-bit aware. This was an issue in KVM, that used the 32-bit cpu struct variables to hold 64-bit MSR values sysenter needs. I believe it to be a step in the right direction to not fix this only for KVM, but make the functionality available to qemu as well.

Does anyone have any objections to this series? I see no obvious flaws and it looks to be quite self contained. My understanding is that this is needed to enable OS X guest support so it seems worthwhile to apply to me.

Regards,

Anthony Liguori

Quoted 3 lines

Alex

#2 lore raw
Quoted 8 lines · Anthony Liguori
Quoted 5 lines · Alexander Graf

Hi,

this set of patches attempts to implement a CPU definition set for current Intel CPUs that resembles an original as closely as currently possible. Several features a current Intel CPU has are not implemented by qemu, but that should not keep us from adding this definition so people can add features later on.

As a side effect, I made the sysenter instruction 64-bit aware. This was an issue in KVM, that used the 32-bit cpu struct variables to hold 64-bit MSR values sysenter needs. I believe it to be a step in the right direction to not fix this only for KVM, but make the functionality available to qemu as well.

Does anyone have any objections to this series? I see no obvious flaws and it looks to be quite self contained. My understanding is that this is needed to enable OS X guest support so it seems worthwhile to apply to me.

It's missing save/restore support. I'll post an updated series later today.

Alex

Quoted 12 lines

Regards,

Anthony Liguori

Quoted 3 lines

Alex

#3 lore raw
In reply to Anthony Liguori
Quoted 8 lines · Anthony Liguori
Quoted 5 lines · Alexander Graf

Hi,

this set of patches attempts to implement a CPU definition set for current Intel CPUs that resembles an original as closely as currently possible. Several features a current Intel CPU has are not implemented by qemu, but that should not keep us from adding this definition so people can add features later on.

As a side effect, I made the sysenter instruction 64-bit aware. This was an issue in KVM, that used the 32-bit cpu struct variables to hold 64-bit MSR values sysenter needs. I believe it to be a step in the right direction to not fix this only for KVM, but make the functionality available to qemu as well.

Does anyone have any objections to this series? I see no obvious flaws and it looks to be quite self contained. My understanding is that this is needed to enable OS X guest support so it seems worthwhile to apply to me.

It is really useful for OS X, but actually helps in even more cases. It unbreaks KVM x86_64 on Intel and it enables people to implement Intel-only features in x86_64 qemu code, like VMX for example. It also shows some flaws in the current KVM implementation, that breaks on CPUID 4.

So yes, I'd really love to see this applied.

Thanks,

Alex

Quoted 10 lines

Regards,

Anthony Liguori

Quoted 3 lines

Alex

#4 lore raw

Yes, being able to emulate Core 2 CPU is important.

Does it emulate also the CPU Name string, or only CPU feature flags ?

Signature · 1 line
-Alexey Eromenko "Technologov"
#5 lore raw

Am 18.08.2008 um 23:31 schrieb "Alexey Eremenko" <[email protected]>:

Quoted 4 lines

Yes, being able to emulate Core 2 CPU is important.

Does it emulate also the CPU Name string, or only CPU feature flags ?

It emulates the name string too, but has a hard coded Mhz value.
Also not all features are emulated by qemu atm, so only those feates that are are included in the features list.

Alex

Quoted 4 lines
Signature · 1 line
-Alexey Eromenko "Technologov"
#6 lore raw
In reply to Alexander Graf
Quoted 5 lines · Alexander Graf

Hi,

this set of patches attempts to implement a CPU definition set for current Intel CPUs that resembles an original as closely as currently possible. Several features a current Intel CPU has are not implemented by qemu, but that should not keep us from adding this definition so people can add features later on.

As a side effect, I made the sysenter instruction 64-bit aware. This was an issue in KVM, that used the 32-bit cpu struct variables to hold 64-bit MSR values sysenter needs. I believe it to be a step in the right direction to not fix this only for KVM, but make the functionality available to qemu as well.

Can you please base theses patches off of the QEMU SVN repository instead of the kvm-userspace repository.

Regards,

Anthony Liguori

Quoted 3 lines

Alex