[fedora-virt] Re: rpms/qemu/F-11 qemu-fix-x86-feature-modifications-for-features-that-set.patch, NONE, 1.1 qemu-make-x86-cpuid-feature-names-available-in-file-scope.patch, NONE, 1.1 qemu-trim-cpu-features-not-supported-by-kvm.patch, NONE, 1.1 qemu.spec, 1.94, 1.95

Glauber Costa glommer at redhat.com
Tue May 19 10:33:53 UTC 2009


On Tue, May 19, 2009 at 07:37:10AM +0100, Mark McLoughlin wrote:
> Hi Glauber,
> 
> I've pushed qemu-0.10.4-4.fc11 to stable, since it's had some good
> testing:
> 
>   https://admin.fedoraproject.org/updates/F11/FEDORA-2009-5050
> 
> So, qemu-0.10.4-5.fc11 in testing just has the cpuid trimming backport
> now:
> 
>   https://admin.fedoraproject.org/updates/qemu-0.10.4-5.fc11
> 
> Also, now that I look more closely, Jan's cpuinfo in bug #499596 does
> actually contain nx. Maybe cpuid trimming won't help him after all?
Let him say it. If it doesn't, we may have a bigger problem

> 
> On Tue, 2009-05-19 at 03:01 +0000, Glauber Costa wrote:
> 
> > Author: glommer
> > 
> > Update of /cvs/pkgs/rpms/qemu/F-11
> > In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv8104
> > 
> > Modified Files:
> >         qemu.spec 
> > Added Files:
> >         qemu-fix-x86-feature-modifications-for-features-that-set.patch 
> >         qemu-make-x86-cpuid-feature-names-available-in-file-scope.patch 
> >         qemu-trim-cpu-features-not-supported-by-kvm.patch 
> > Log Message:
> > - Backport cpuid trimming from upstream (#499596)
> ...
> > qemu-trim-cpu-features-not-supported-by-kvm.patch:
> > 
> > --- NEW FILE qemu-trim-cpu-features-not-supported-by-kvm.patch ---
> > >From 3b944bee95c6a5ee561acfc4c4d75d8cc971a567 Mon Sep 17 00:00:00 2001
> > From: Avi Kivity <avi at redhat.com>
> > Date: Sun, 3 May 2009 17:04:04 +0300
> > Subject: [PATCH STABLE 3/3] kvm: Trim cpu features not supported by kvm
> > 
> > Remove cpu features that are not supported by kvm from the cpuid features
> > reported to the guest.
> > 
> > Signed-off-by: Avi Kivity <avi at redhat.com>
> > Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
> > Signed-off-by: Glauber Costa <glommer at redhat.com>
> > ---
> >  target-i386/helper.c |   31 ++++++++++++++++++++++++++++++-
> >  1 files changed, 30 insertions(+), 1 deletions(-)
> > 
> > diff --git a/target-i386/helper.c b/target-i386/helper.c
> > index 1433857..6af5d23 100644
> > --- a/target-i386/helper.c
> > +++ b/target-i386/helper.c
> > @@ -93,6 +93,21 @@ static void add_flagname_to_bitmaps(char *flagname, uint32_t *features,
> >      }
> >  }
> >  
> > +static void kvm_trim_features(uint32_t *features, uint32_t supported,
> > +                              const char *names[])
> > +{
> > +    int i;
> > +    uint32_t mask;
> > +
> > +    for (i = 0; i < 32; ++i) {
> > +        mask = 1U << i;
> > +        if ((*features & mask) && !(supported & mask)) {
> > +            printf("Processor feature %s not supported by kvm\n", names[i]);
> 
> Anthony later killed off this message, it's too verbose.
> 
> > +            *features &= ~mask;
> > +        }
> > +    }
> > +}
> > +
> >  typedef struct x86_def_t {
> >      const char *name;
> >      uint32_t level;
> > @@ -1672,7 +1687,21 @@ CPUX86State *cpu_x86_init(const char *cpu_model)
> >  #ifdef USE_KQEMU
> >      kqemu_init(env);
> >  #endif
> > -    if (kvm_enabled())
> > +    if (kvm_enabled()) {
> >          kvm_init_vcpu(env);
> > +        kvm_trim_features(&env->cpuid_features,
> > +                          kvm_arch_get_supported_cpuid(env, 1, R_EDX),
> > +                          feature_name);
> > +        kvm_trim_features(&env->cpuid_ext_features,
> > +                          kvm_arch_get_supported_cpuid(env, 1, R_ECX),
> > +                          ext_feature_name);
> > +        kvm_trim_features(&env->cpuid_ext2_features,
> > +                          kvm_arch_get_supported_cpuid(env, 0x80000001, R_EDX),
> > +                          ext2_feature_name);
> > +        kvm_trim_features(&env->cpuid_ext3_features,
> > +                          kvm_arch_get_supported_cpuid(env, 0x80000001, R_ECX),
> > +                          ext3_feature_name);
> 
> This doesn't work on my machine without:
> 
>   http://patchwork.kernel.org/patch/23233/
> 
> > Index: qemu.spec
> > ===================================================================
> > RCS file: /cvs/pkgs/rpms/qemu/F-11/qemu.spec,v
> > retrieving revision 1.94
> > retrieving revision 1.95
> > diff -u -p -r1.94 -r1.95
> > --- qemu.spec   14 May 2009 11:00:13 -0000      1.94
> > +++ qemu.spec   19 May 2009 03:00:56 -0000      1.95
> > @@ -1,7 +1,7 @@
> >  Summary: QEMU is a FAST! processor emulator
> >  Name: qemu
> >  Version: 0.10.4
> > -Release: 4%{?dist}
> > +Release: 5%{?dist}
> >  # Epoch because we pushed a qemu-1.0 package
> >  Epoch: 2
> >  License: GPLv2+ and LGPLv2+ and BSD
> > @@ -33,6 +33,10 @@ Patch17: qemu-dma-aio-cancellation1.patc
> >  Patch18: qemu-dma-aio-cancellation2.patch
> >  Patch19: qemu-dma-aio-cancellation3.patch
> >  Patch20: qemu-dma-aio-cancellation4.patch
> > +Patch21: qemu-make-x86-cpuid-feature-names-available-in-file-scope.patch
> > +Patch22: qemu-fix-x86-feature-modifications-for-features-that-set.patch
> > +Patch23: qemu-trim-cpu-features-not-supported-by-kvm.patch
> > +
> >  
> >  BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
> >  BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel
> > @@ -233,6 +237,9 @@ such as kvmtrace and kvm_stat.
> >  %patch18 -p1
> >  %patch19 -p1
> >  %patch20 -p1
> > +%patch21 -p1
> > +#%patch22 -p1
> > +#%patch23 -p1
> 
> Why aren't you applying the patches?
> 
> Cheers,
> Mark.
> 




More information about the Fedora-virt mailing list