[PATCH v2 1/3] kvm: decode the argument of KVM_SET_CPUID2 and KVM_GET_*_CPUID ioctl command

Dmitry V. Levin ldv at altlinux.org
Mon Jul 9 22:18:49 UTC 2018


On Tue, Jul 03, 2018 at 01:34:38AM +0300, Dmitry V. Levin wrote:
> On Thu, Jun 28, 2018 at 03:37:43AM +0100, Pierre Marsais wrote:
> > * configure.ac (AC_CHECK_TYPES): Add struct kvm_cpuid2.
> > * kvm.c [HAVE_STRUCT_KVM_CPUID2]: Include "xlat/kvm_cpuid_flags.h".
> > [HAVE_STRUCT_KVM_CPUID2] (print_kvm_cpuid_entry, kvm_ioctl_decode_cpuid2):
> > New functions.
> > (kvm_ioctl) [HAVE_STRUCT_KVM_CPUID2]: Use kvm_ioctl_decode_cpuid2.
> > * xlat/kvm_cpuid_flags.in: New file.
> > 
> > Signed-off-by: Pierre Marsais <pierre.marsais at lse.epita.fr>
> > ---
> > Changes in v2:
> > * Follow the GNU ChangeLog style for commit message
> > * Improve code style in kvm.c
> > 
> >  configure.ac            |  1 +
> >  kvm.c                   | 61 +++++++++++++++++++++++++++++++++++++++++
> >  xlat/kvm_cpuid_flags.in |  3 ++
> >  3 files changed, 65 insertions(+)
> >  create mode 100644 xlat/kvm_cpuid_flags.in
> > 
> > diff --git a/configure.ac b/configure.ac
> > index 9dec1b23..c1eeb578 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -575,6 +575,7 @@ AC_CHECK_TYPES(m4_normalize([
> >  ]),,, [#include <linux/ptp_clock.h>])
> >  
> >  AC_CHECK_TYPES(m4_normalize([
> > +	struct kvm_cpuid2,
> >  	struct kvm_regs,
> >  	struct kvm_sregs,
> >  	struct kvm_userspace_memory_region
> > diff --git a/kvm.c b/kvm.c
> > index 86fd9e50..15beedca 100644
> > --- a/kvm.c
> > +++ b/kvm.c
> > @@ -85,6 +85,60 @@ kvm_ioctl_decode_regs(struct tcb *const tcp, const unsigned int code,
> >  }
> >  # endif /* HAVE_STRUCT_KVM_REGS */
> >  
> > +# ifdef HAVE_STRUCT_KVM_CPUID2
> > +#  include "xlat/kvm_cpuid_flags.h"
> [...]
> > --- /dev/null
> > +++ b/xlat/kvm_cpuid_flags.in
> > @@ -0,0 +1,3 @@
> > +KVM_CPUID_FLAG_SIGNIFCANT_INDEX
> > +KVM_CPUID_FLAG_STATEFUL_FUNC
> > +KVM_CPUID_FLAG_STATE_READ_NEXT
> 
> Unfortunately, this fails to build with kernel headers that do not contain
> linux commit v4.7-rc1~32^2~42; see e.g.
> https://travis-ci.org/strace/strace/builds/399322530
> 
> Another portability issue is KVM_GET_EMULATED_CPUID constant introduced
> by linux commit v3.13-rc1~80^2~32, much later than the current value of
> KVM_GET_SUPPORTED_CPUID constant introduced by linux commit
> v2.6.25-rc4~97^2~10, see e.g.
> https://build.opensuse.org/package/live_build_log/home:ldv_alt/strace/RHEL_7/x86_64

I've applied necessary changes and merged this series, thanks.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20180710/7e1e3d72/attachment.bin>


More information about the Strace-devel mailing list