[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 09/15] target-i386: Add property getter for C
From: |
Michael Roth |
Subject: |
Re: [Qemu-devel] [PATCH v2 09/15] target-i386: Add property getter for CPU model |
Date: |
Tue, 24 Apr 2012 12:40:58 -0500 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Apr 24, 2012 at 06:50:28PM +0200, Andreas Färber wrote:
> Am 24.04.2012 18:36, schrieb Michael Roth:
> > On Tue, Apr 24, 2012 at 11:33:35AM +0200, Andreas Färber wrote:
> >> Signed-off-by: Andreas Färber <address@hidden>
> >> ---
> >> target-i386/cpu.c | 14 +++++++++++++-
> >> 1 files changed, 13 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> >> index 9479717..643289f 100644
> >> --- a/target-i386/cpu.c
> >> +++ b/target-i386/cpu.c
> >> @@ -640,6 +640,18 @@ static void x86_cpuid_version_set_family(Object *obj,
> >> Visitor *v, void *opaque,
> >> }
> >> }
> >>
> >> +static void x86_cpuid_version_get_model(Object *obj, Visitor *v, void
> >> *opaque,
> >> + const char *name, Error **errp)
> >> +{
> >> + X86CPU *cpu = X86_CPU(obj);
> >> + CPUX86State *env = &cpu->env;
> >> + int64_t value;
> >> +
> >> + value = (env->cpuid_version >> 4) & 0xf;
> >> + value |= ((env->cpuid_version >> 16) & 0xf) << 4;
> >> + visit_type_int(v, &value, name, errp);
> >> +}
> >> +
> >
> > Reviewed-by: Michael Roth <address@hidden>
> >
> > Just a note though,
> >
> > The setter code does:
> >
> > env->cpuid_version &= ~0xf00f0;
> > env->cpuid_version |= ((model & 0xf) << 4) | ((model >> 4) << 16);
> >
> > So as a result I think there's a potential for the getter to not report bits
> > that were incorrectly set and exposed to the guest, since we mask off
> > bits outside the valid range in your code. But that would be a bug in the
> > setter code/cpudef of course and could be addressed outside this series.
>
> Sorry, I don't follow... Are you missing the if (value > 0xff) return;
> path in the setter (05/15)? Or do you have example numbers that break?
Sorry, you're right, I missed the range check you added in 05/15. Looks
good.
>
> I did it in two lines due to the 80-char limit. And env->cpuid_version
> contains more than just the model so we must mask in the getter.
>
> Are you saying the 16-bit limit is wrong and there should be a third
> nibble somewhere?
>
> Andreas
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
>
- [Qemu-devel] [PATCH v2 08/15] target-i386: Add property getter for CPU family, (continued)
- [Qemu-devel] [PATCH v2 08/15] target-i386: Add property getter for CPU family, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 03/15] target-i386: Add range check for -cpu , family=x, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 05/15] target-i386: Add "model" property to X86CPU, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 04/15] target-i386: Add "family" property to X86CPU, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 13/15] target-i386: Introduce "xlevel" property for X86CPU, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 11/15] target-i386: Add property getter for CPU model-id, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 10/15] target-i386: Add property getter for CPU stepping, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 09/15] target-i386: Add property getter for CPU model, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 14/15] target-i386: Prepare "vendor" property for X86CPU, Andreas Färber, 2012/04/24
- [Qemu-devel] [PATCH v2 15/15] target-i386: Introduce "tsc-frequency" property for X86CPU, Andreas Färber, 2012/04/24
- Re: [Qemu-devel] [PATCH v2 00/15] QOM'ify x86 CPU, part 2: properties, Andreas Färber, 2012/04/24
- Re: [Qemu-devel] [PATCH v2 00/15] QOM'ify x86 CPU, part 2: properties, Igor Mammedov, 2012/04/24