All of lore.kernel.org
 help / color / mirror / Atom feed
From: Valeriy Vdovin <valeriy.vdovin@virtuozzo.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Thomas Huth <thuth@redhat.com>,
	Laurent Vivier <lvivier@redhat.com>,
	kvm@vger.kernel.org, Denis Lunev <den@openvz.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Subject: Re: [PATCH v8] qapi: introduce 'query-kvm-cpuid' action
Date: Thu, 3 Jun 2021 11:21:12 +0300	[thread overview]
Message-ID: <20210603082112.GA473080@dhcp-172-16-24-191.sw.ru> (raw)
In-Reply-To: <20210602205102.icdqspki66rwvc3n@redhat.com>

On Wed, Jun 02, 2021 at 03:51:02PM -0500, Eric Blake wrote:
> On Mon, May 31, 2021 at 03:38:06PM +0300, Valeriy Vdovin wrote:
> > Introducing new qapi method 'query-kvm-cpuid'. This method can be used to
> > get virtualized cpu model info generated by QEMU during VM initialization in
> > the form of cpuid representation.
> > 
> > 
> > Use example:
> > qmp_request: {
> >   "execute": "query-kvm-cpuid"
> > }
> > 
> > qmp_response: [
> >   {
> >     "eax": 1073741825,
> >     "edx": 77,
> >     "in_eax": 1073741824,
> >     "ecx": 1447775574,
> >     "ebx": 1263359563,
> >   },
> 
> JSON does not permit a trailing ',' before '}'; which means you did
> not actually paste an actual QMP response here.
> 

I actually did paste it. Here is a python code-snippet of my test script
that I've used to extract the above response:

  self.__p.stdin.writelines([cmdstring])
  self.__p.stdin.flush()
  out = self.__p.stdout.readline()
  print(out)
  resp = json.loads(out)['return']
  pretty = json.dumps(resp, indent=2)
  print('qmp_response: {}'.format(pretty)) <- this is what I've copied.
> > ---
> >  qapi/machine-target.json   | 43 ++++++++++++++++++++++++++++++++++++++
> >  target/i386/kvm/kvm.c      | 37 ++++++++++++++++++++++++++++++++
> >  tests/qtest/qmp-cmd-test.c |  1 +
> >  3 files changed, 81 insertions(+)
> > 
> > diff --git a/qapi/machine-target.json b/qapi/machine-target.json
> > index e7811654b7..a83180dd24 100644
> > --- a/qapi/machine-target.json
> > +++ b/qapi/machine-target.json
> > @@ -329,3 +329,46 @@
> >  ##
> >  { 'command': 'query-cpu-definitions', 'returns': ['CpuDefinitionInfo'],
> >    'if': 'defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS)' }
> > +
> > +##
> > +# @CpuidEntry:
> > +#
> > +# A single entry of a CPUID response.
> > +#
> > +# One entry holds full set of information (leaf) returned to the guest in response
> > +# to it calling a CPUID instruction with eax, ecx used as the agruments to that
> 
> arguments
> 
> > +# instruction. ecx is an optional argument as not all of the leaves support it.
> 
> Is there a default value of ecx for when it is not provided by the
> user but needed by the leaf?  Or is it an error if ecx is omitted in
> that case?  Similarly, is it an error if ecx is provided but not
> needed?
> 
> > +#
> > +# @in_eax: CPUID argument in eax
> > +# @in_ecx: CPUID argument in ecx
> 
> Should be in-eax, in-ecx.
> 
> > +# @eax: eax
> > +# @ebx: ebx
> > +# @ecx: ecx
> > +# @edx: edx
> > +#
> > +# Since: 6.1
> > +##
> > +{ 'struct': 'CpuidEntry',
> > +  'data': { 'in_eax' : 'uint32',
> > +            '*in_ecx' : 'uint32',
> > +            'eax' : 'uint32',
> > +            'ebx' : 'uint32',
> > +            'ecx' : 'uint32',
> > +            'edx' : 'uint32'
> > +          },
> > +  'if': 'defined(TARGET_I386) && defined(CONFIG_KVM)' }
> > +
> > +##
> > +# @query-kvm-cpuid:
> > +#
> > +# Returns raw data from the KVM CPUID table for the first VCPU.
> > +# The KVM CPUID table defines the response to the CPUID
> > +# instruction when executed by the guest operating system.
> > +#
> > +# Returns: a list of CpuidEntry
> > +#
> > +# Since: 6.1
> > +##
> > +{ 'command': 'query-kvm-cpuid',
> > +  'returns': ['CpuidEntry'],
> > +  'if': 'defined(TARGET_I386) && defined(CONFIG_KVM)' }
> 
> -- 
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.           +1-919-301-3266
> Virtualization:  qemu.org | libvirt.org
> 

  parent reply	other threads:[~2021-06-03  8:21 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-31 12:38 [PATCH v8] qapi: introduce 'query-kvm-cpuid' action Valeriy Vdovin
2021-06-02 12:24 ` Vladimir Sementsov-Ogievskiy
2021-06-02 18:17 ` Philippe Mathieu-Daudé
2021-06-02 18:17   ` Philippe Mathieu-Daudé
2021-06-02 20:46   ` Eduardo Habkost
2021-06-02 20:46     ` Eduardo Habkost
2021-06-02 23:24     ` Philippe Mathieu-Daudé
2021-06-02 23:24       ` Philippe Mathieu-Daudé
2021-06-02 20:51 ` Eric Blake
2021-06-02 20:51   ` Eric Blake
2021-06-02 21:01   ` Eduardo Habkost
2021-06-02 21:01     ` Eduardo Habkost
2021-06-03  8:21   ` Valeriy Vdovin [this message]
2021-06-08 15:14 ` Markus Armbruster
2021-06-08 15:14   ` Markus Armbruster
2021-06-08 15:27   ` Valeriy Vdovin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210603082112.GA473080@dhcp-172-16-24-191.sw.ru \
    --to=valeriy.vdovin@virtuozzo.com \
    --cc=armbru@redhat.com \
    --cc=den@openvz.org \
    --cc=eblake@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=lvivier@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mtosatti@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    --cc=vsementsov@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.