* [Qemu-devel] [PULL 0/2] X86 fixes
@ 2016-03-11 18:47 Eduardo Habkost
2016-03-14 16:21 ` Peter Maydell
0 siblings, 1 reply; 7+ messages in thread
From: Eduardo Habkost @ 2016-03-11 18:47 UTC (permalink / raw)
To: Peter Maydell
Cc: qemu-devel, Paolo Bonzini, Andreas Färber, Richard Henderson
The following changes since commit a648c137383d84bc4f95696e5293978d9541a26e:
Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20160309-1' into staging (2016-03-10 02:51:14 +0000)
are available in the git repository at:
git://github.com/ehabkost/qemu.git tags/x86-pull-request
for you to fetch changes up to b04c3b6ad8b3e802fe7ad7a3ff5a9ab980d22578:
kvm: Remove x2apic feature from CPU model when kernel_irqchip is off (2016-03-11 15:43:48 -0300)
----------------------------------------------------------------
X86 fixes
----------------------------------------------------------------
Denis V. Lunev (1):
hyperv: cpu hotplug fix with HyperV enabled
Lan Tianyu (1):
kvm: Remove x2apic feature from CPU model when kernel_irqchip is off
roms/SLOF | 2 +-
roms/openbios | 2 +-
target-i386/cpu.c | 4 ++++
target-i386/kvm.c | 1 +
4 files changed, 7 insertions(+), 2 deletions(-)
--
2.1.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] X86 fixes
2016-03-11 18:47 [Qemu-devel] [PULL 0/2] X86 fixes Eduardo Habkost
@ 2016-03-14 16:21 ` Peter Maydell
2016-03-14 20:42 ` Eduardo Habkost
0 siblings, 1 reply; 7+ messages in thread
From: Peter Maydell @ 2016-03-14 16:21 UTC (permalink / raw)
To: Eduardo Habkost
Cc: QEMU Developers, Paolo Bonzini, Andreas Färber,
Richard Henderson
On 11 March 2016 at 18:47, Eduardo Habkost <ehabkost@redhat.com> wrote:
> The following changes since commit a648c137383d84bc4f95696e5293978d9541a26e:
>
> Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20160309-1' into staging (2016-03-10 02:51:14 +0000)
>
> are available in the git repository at:
>
> git://github.com/ehabkost/qemu.git tags/x86-pull-request
>
> for you to fetch changes up to b04c3b6ad8b3e802fe7ad7a3ff5a9ab980d22578:
>
> kvm: Remove x2apic feature from CPU model when kernel_irqchip is off (2016-03-11 15:43:48 -0300)
>
> ----------------------------------------------------------------
> X86 fixes
>
> ----------------------------------------------------------------
>
> Denis V. Lunev (1):
> hyperv: cpu hotplug fix with HyperV enabled
>
> Lan Tianyu (1):
> kvm: Remove x2apic feature from CPU model when kernel_irqchip is off
>
> roms/SLOF | 2 +-
> roms/openbios | 2 +-
> target-i386/cpu.c | 4 ++++
> target-i386/kvm.c | 1 +
> 4 files changed, 7 insertions(+), 2 deletions(-)
This pull contains submodule updates not mentioned in the
commit messages -- are they intentional ?
thanks
-- PMM
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] X86 fixes
2016-03-14 16:21 ` Peter Maydell
@ 2016-03-14 20:42 ` Eduardo Habkost
0 siblings, 0 replies; 7+ messages in thread
From: Eduardo Habkost @ 2016-03-14 20:42 UTC (permalink / raw)
To: Peter Maydell
Cc: QEMU Developers, Paolo Bonzini, Andreas Färber,
Richard Henderson
On Mon, Mar 14, 2016 at 04:21:44PM +0000, Peter Maydell wrote:
> On 11 March 2016 at 18:47, Eduardo Habkost <ehabkost@redhat.com> wrote:
> > The following changes since commit a648c137383d84bc4f95696e5293978d9541a26e:
> >
> > Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20160309-1' into staging (2016-03-10 02:51:14 +0000)
> >
> > are available in the git repository at:
> >
> > git://github.com/ehabkost/qemu.git tags/x86-pull-request
> >
> > for you to fetch changes up to b04c3b6ad8b3e802fe7ad7a3ff5a9ab980d22578:
> >
> > kvm: Remove x2apic feature from CPU model when kernel_irqchip is off (2016-03-11 15:43:48 -0300)
> >
> > ----------------------------------------------------------------
> > X86 fixes
> >
> > ----------------------------------------------------------------
> >
> > Denis V. Lunev (1):
> > hyperv: cpu hotplug fix with HyperV enabled
> >
> > Lan Tianyu (1):
> > kvm: Remove x2apic feature from CPU model when kernel_irqchip is off
> >
> > roms/SLOF | 2 +-
> > roms/openbios | 2 +-
> > target-i386/cpu.c | 4 ++++
> > target-i386/kvm.c | 1 +
> > 4 files changed, 7 insertions(+), 2 deletions(-)
>
> This pull contains submodule updates not mentioned in the
> commit messages -- are they intentional ?
They are not, sorry again. I am submitting a new pull request.
I am adding a hook to my repository so it never happen again.
--
Eduardo
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PULL 0/2] x86 fixes
@ 2016-10-03 19:08 Eduardo Habkost
2016-10-03 19:08 ` [Qemu-devel] [PULL 1/2] target-i386: Report known CPUID[EAX=0xD, ECX=0]:EAX bits as migratable Eduardo Habkost
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Eduardo Habkost @ 2016-10-03 19:08 UTC (permalink / raw)
To: Peter Maydell; +Cc: Paolo Bonzini, Richard Henderson, qemu-devel
The following changes since commit c5d128ffeb5357df1ea3e6de0c13b3d6a09f6064:
Merge remote-tracking branch 'remotes/borntraeger/tags/s390x-20160927' into staging (2016-09-30 23:45:56 +0100)
are available in the git repository at:
git://github.com/ehabkost/qemu.git tags/x86-pull-request
for you to fetch changes up to 339892d758efb2d0954160d41736a0eac9875d67:
target-i386: Correct family/model/stepping for Opteron_G3 (2016-10-03 16:06:43 -0300)
----------------------------------------------------------------
x86 bug fixes
Fix for a XSAVE regression when using "-cpu host", and a fix on
the Opteron_G3 CPU model.
----------------------------------------------------------------
Eduardo Habkost (1):
target-i386: Report known CPUID[EAX=0xD,ECX=0]:EAX bits as migratable
Evgeny Yakovlev (1):
target-i386: Correct family/model/stepping for Opteron_G3
include/hw/i386/pc.h | 15 +++++++++++++++
target-i386/cpu.c | 25 ++++++++++++++-----------
2 files changed, 29 insertions(+), 11 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PULL 1/2] target-i386: Report known CPUID[EAX=0xD, ECX=0]:EAX bits as migratable
2016-10-03 19:08 [Qemu-devel] [PULL 0/2] x86 fixes Eduardo Habkost
@ 2016-10-03 19:08 ` Eduardo Habkost
2016-10-03 19:08 ` [Qemu-devel] [PULL 2/2] target-i386: Correct family/model/stepping for Opteron_G3 Eduardo Habkost
2016-10-04 11:36 ` [Qemu-devel] [PULL 0/2] x86 fixes Peter Maydell
2 siblings, 0 replies; 7+ messages in thread
From: Eduardo Habkost @ 2016-10-03 19:08 UTC (permalink / raw)
To: Peter Maydell; +Cc: Paolo Bonzini, Richard Henderson, qemu-devel, Paolo Bonzini
A regression was introduced by commit 96193c22a "target-i386:
Move xsave component mask to features array": all
CPUID[EAX=0xD,ECX=0]:EAX bits were being reported as unmigratable
because they don't have feature names defined. This broke
"-cpu host" because it enables only migratable features by
default.
This adds a new field to FeatureWordInfo: migratable_flags, which
will make those features be reported as migratable even if they
don't have a property name defined.
Reported-by: Wanpeng Li <wanpeng.li@hotmail.com>
Cc: Paolo Bonzini <bonzini@gnu.org>
Reviewed-by: Wanpeng Li <wanpeng.li@hotmail.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
target-i386/cpu.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 333309b..0807e92 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -258,6 +258,7 @@ typedef struct FeatureWordInfo {
int cpuid_reg; /* output register (R_* constant) */
uint32_t tcg_features; /* Feature flags supported by TCG */
uint32_t unmigratable_flags; /* Feature flags known to be unmigratable */
+ uint32_t migratable_flags; /* Feature flags known to be migratable */
} FeatureWordInfo;
static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
@@ -494,6 +495,10 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
.cpuid_needs_ecx = true, .cpuid_ecx = 0,
.cpuid_reg = R_EAX,
.tcg_features = ~0U,
+ .migratable_flags = XSTATE_FP_MASK | XSTATE_SSE_MASK |
+ XSTATE_YMM_MASK | XSTATE_BNDREGS_MASK | XSTATE_BNDCSR_MASK |
+ XSTATE_OPMASK_MASK | XSTATE_ZMM_Hi256_MASK | XSTATE_Hi16_ZMM_MASK |
+ XSTATE_PKRU_MASK,
},
[FEAT_XSAVE_COMP_HI] = {
.cpuid_eax = 0xD,
@@ -600,15 +605,13 @@ static uint32_t x86_cpu_get_migratable_flags(FeatureWord w)
for (i = 0; i < 32; i++) {
uint32_t f = 1U << i;
- /* If the feature name is unknown, it is not supported by QEMU yet */
- if (!wi->feat_names[i]) {
- continue;
- }
- /* Skip features known to QEMU, but explicitly marked as unmigratable */
- if (wi->unmigratable_flags & f) {
- continue;
+
+ /* If the feature name is known, it is implicitly considered migratable,
+ * unless it is explicitly set in unmigratable_flags */
+ if ((wi->migratable_flags & f) ||
+ (wi->feat_names[i] && !(wi->unmigratable_flags & f))) {
+ r |= f;
}
- r |= f;
}
return r;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Qemu-devel] [PULL 2/2] target-i386: Correct family/model/stepping for Opteron_G3
2016-10-03 19:08 [Qemu-devel] [PULL 0/2] x86 fixes Eduardo Habkost
2016-10-03 19:08 ` [Qemu-devel] [PULL 1/2] target-i386: Report known CPUID[EAX=0xD, ECX=0]:EAX bits as migratable Eduardo Habkost
@ 2016-10-03 19:08 ` Eduardo Habkost
2016-10-04 11:36 ` [Qemu-devel] [PULL 0/2] x86 fixes Peter Maydell
2 siblings, 0 replies; 7+ messages in thread
From: Eduardo Habkost @ 2016-10-03 19:08 UTC (permalink / raw)
To: Peter Maydell
Cc: Paolo Bonzini, Richard Henderson, qemu-devel, Evgeny Yakovlev
From: Evgeny Yakovlev <eyakovlev@virtuozzo.com>
Current CPU definition for AMD Opteron third generation includes
features like SSE4a and LAHF_LM support in emulated CPUID. These
features are present in K8 rev.E or K10 CPUs and later. However,
current G3 family and model describe 2nd generation K8 cores instead.
This is incorrect but was considered harmless until our tests found a
problem with linux kernels >= 3.10 (and maybe earlier) which specifically
check for Opteron K8 model when parsing CPUID leaf 0x80000001:
http://lxr.free-electrons.com/source/arch/x86/kernel/cpu/amd.c?v=3.16#L552
This code will disable LAHF_LM feature in /proc/cpuinfo if model number
is inconsistent.
This change sets Opteron_G3 family/model/stepping to 16/2/3 which is
a proper Opteron 3rd generation 2350 CPU.
Signed-off-by: Evgeny Yakovlev <eyakovlev@virtuozzo.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Richard Henderson <rth@twiddle.net>
CC: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
include/hw/i386/pc.h | 15 +++++++++++++++
target-i386/cpu.c | 6 +++---
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 47bdf10..cb2df83 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -379,6 +379,21 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
.driver = TYPE_X86_CPU,\
.property = "full-cpuid-auto-level",\
.value = "off",\
+ },\
+ {\
+ .driver = "Opteron_G3" "-" TYPE_X86_CPU,\
+ .property = "family",\
+ .value = "15",\
+ },\
+ {\
+ .driver = "Opteron_G3" "-" TYPE_X86_CPU,\
+ .property = "model",\
+ .value = "6",\
+ },\
+ {\
+ .driver = "Opteron_G3" "-" TYPE_X86_CPU,\
+ .property = "stepping",\
+ .value = "1",\
},
#define PC_COMPAT_2_6 \
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 0807e92..1c57fce 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1428,9 +1428,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
.name = "Opteron_G3",
.level = 5,
.vendor = CPUID_VENDOR_AMD,
- .family = 15,
- .model = 6,
- .stepping = 1,
+ .family = 16,
+ .model = 2,
+ .stepping = 3,
.features[FEAT_1_EDX] =
CPUID_VME | CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | CPUID_MMX |
CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | CPUID_MCA |
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] x86 fixes
2016-10-03 19:08 [Qemu-devel] [PULL 0/2] x86 fixes Eduardo Habkost
2016-10-03 19:08 ` [Qemu-devel] [PULL 1/2] target-i386: Report known CPUID[EAX=0xD, ECX=0]:EAX bits as migratable Eduardo Habkost
2016-10-03 19:08 ` [Qemu-devel] [PULL 2/2] target-i386: Correct family/model/stepping for Opteron_G3 Eduardo Habkost
@ 2016-10-04 11:36 ` Peter Maydell
2 siblings, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2016-10-04 11:36 UTC (permalink / raw)
To: Eduardo Habkost; +Cc: Paolo Bonzini, Richard Henderson, QEMU Developers
On 3 October 2016 at 20:08, Eduardo Habkost <ehabkost@redhat.com> wrote:
> The following changes since commit c5d128ffeb5357df1ea3e6de0c13b3d6a09f6064:
>
> Merge remote-tracking branch 'remotes/borntraeger/tags/s390x-20160927' into staging (2016-09-30 23:45:56 +0100)
>
> are available in the git repository at:
>
> git://github.com/ehabkost/qemu.git tags/x86-pull-request
>
> for you to fetch changes up to 339892d758efb2d0954160d41736a0eac9875d67:
>
> target-i386: Correct family/model/stepping for Opteron_G3 (2016-10-03 16:06:43 -0300)
>
> ----------------------------------------------------------------
> x86 bug fixes
>
> Fix for a XSAVE regression when using "-cpu host", and a fix on
> the Opteron_G3 CPU model.
>
> ----------------------------------------------------------------
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-10-04 11:37 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-03 19:08 [Qemu-devel] [PULL 0/2] x86 fixes Eduardo Habkost
2016-10-03 19:08 ` [Qemu-devel] [PULL 1/2] target-i386: Report known CPUID[EAX=0xD, ECX=0]:EAX bits as migratable Eduardo Habkost
2016-10-03 19:08 ` [Qemu-devel] [PULL 2/2] target-i386: Correct family/model/stepping for Opteron_G3 Eduardo Habkost
2016-10-04 11:36 ` [Qemu-devel] [PULL 0/2] x86 fixes Peter Maydell
-- strict thread matches above, loose matches on Subject: below --
2016-03-11 18:47 [Qemu-devel] [PULL 0/2] X86 fixes Eduardo Habkost
2016-03-14 16:21 ` Peter Maydell
2016-03-14 20:42 ` Eduardo Habkost
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).