qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jonah Palmer <jonah.palmer@oracle.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: mst@redhat.com, qemu_oss@crudebyte.com, qemu-devel@nongnu.org,
	kraxel@redhat.com, si-wei.liu@oracle.com,
	joao.m.martins@oracle.com, eblake@redhat.com,
	qemu-block@nongnu.org, david@redhat.com, arei.gonglei@huawei.com,
	marcandre.lureau@redhat.com, lvivier@redhat.com,
	thuth@redhat.com, michael.roth@amd.com, groug@kaod.org,
	dgilbert@redhat.com, eric.auger@redhat.com, stefanha@redhat.com,
	boris.ostrovsky@oracle.com, kwolf@redhat.com,
	mathieu.poirier@linaro.org, raphael.norwitz@nutanix.com,
	pbonzini@redhat.com
Subject: Re: [PATCH v9 7/8] qmp: add QMP command x-query-virtio-queue-element
Date: Thu, 11 Nov 2021 05:18:48 -0500	[thread overview]
Message-ID: <4bfacace-2cb4-9df9-8990-dce3a9a2d9ba@oracle.com> (raw)
In-Reply-To: <87a6icw227.fsf@dusky.pond.sub.org>

[-- Attachment #1: Type: text/plain, Size: 5624 bytes --]


On 11/10/21 08:52, Markus Armbruster wrote:
> Jonah Palmer<jonah.palmer@oracle.com>  writes:
>
>> From: Laurent Vivier<lvivier@redhat.com>
>>
>> This new command shows the information of a VirtQueue element.
>>
>> Signed-off-by: Jonah Palmer<jonah.palmer@oracle.com>
> [...]
>
>> diff --git a/qapi/virtio.json b/qapi/virtio.json
>> index 0f65044..c57fbc5 100644
>> --- a/qapi/virtio.json
>> +++ b/qapi/virtio.json
>> @@ -1061,3 +1061,180 @@
>>   { 'command': 'x-query-virtio-vhost-queue-status',
>>     'data': { 'path': 'str', 'queue': 'uint16' },
>>     'returns': 'VirtVhostQueueStatus', 'features': [ 'unstable' ] }
>> +
>> +##
>> +# @VirtioRingDescFlags:
>> +#
>> +# An enumeration of the virtio ring descriptor flags
>> +#
>> +# Since: 6.3
>> +#
>> +##
>> +
>> +{ 'enum': 'VirtioRingDescFlags',
>> +  'data': [ 'next', 'write', 'indirect', 'avail', 'used' ]
>> +}
>> +
>> +##
>> +# @VirtioRingDesc:
>> +#
>> +# Information regarding the VRing descriptor area
>> +#
>> +# @addr: guest physical address of the descriptor data
>> +#
>> +# @len: length of the descriptor data
>> +#
>> +# @flags: list of descriptor flags
>> +#
>> +# Since: 6.3
>> +#
>> +##
>> +
>> +{ 'struct': 'VirtioRingDesc',
>> +  'data': { 'addr': 'uint64',
>> +            'len': 'uint32',
>> +            'flags': [ 'VirtioRingDescFlags' ] } }
>> +
>> +##
>> +# @VirtioRingAvail:
>> +#
>> +# Information regarding the avail VRing (also known as the driver
>> +# area)
>> +#
>> +# @flags: VRingAvail flags
>> +#
>> +# @idx: VRingAvail index
>> +#
>> +# @ring: VRingAvail ring[] entry at provided index
>> +#
>> +# Since: 6.3
>> +#
>> +##
>> +
>> +{ 'struct': 'VirtioRingAvail',
>> +  'data': { 'flags': 'uint16',
>> +            'idx': 'uint16',
>> +            'ring': 'uint16' } }
>> +
>> +##
>> +# @VirtioRingUsed:
>> +#
>> +# Information regarding the used VRing (also known as the device
>> +# area)
>> +#
>> +# @flags: VRingUsed flags
>> +#
>> +# @idx: VRingUsed index
>> +#
>> +# Since: 6.3
>> +#
>> +##
>> +
>> +{ 'struct': 'VirtioRingUsed',
>> +  'data': { 'flags': 'uint16',
>> +            'idx': 'uint16' } }
>> +
>> +##
>> +# @VirtioQueueElement:
>> +#
>> +# Information regarding a VirtQueue VirtQueueElement including
>> +# descriptor, driver, and device areas
>> +#
>> +# @device-name: name of the VirtIODevice which this VirtQueue belongs
>> +#               to (for reference)
>> +#
>> +# @index: index of the element in the queue
>> +#
>> +# @ndescs: number of descriptors
>> +#
>> +# @descs: list of the descriptors
> Can @ndescs ever be not equal to the length of @descs?
>
> If no, it's redundant.

I don't believe so, no. Should I just remove @ndescs then?


Jonah

>> +#
>> +# @avail: VRingAvail info
>> +#
>> +# @used: VRingUsed info
>> +#
>> +# Since: 6.3
>> +#
>> +##
>> +
>> +{ 'struct': 'VirtioQueueElement',
>> +  'data': { 'device-name': 'str',
>> +            'index': 'uint32',
>> +            'ndescs': 'uint32',
>> +            'descs': [ 'VirtioRingDesc' ],
>> +            'avail': 'VirtioRingAvail',
>> +            'used': 'VirtioRingUsed' } }
>> +
>> +##
>> +# @x-query-virtio-queue-element:
>> +#
>> +# Return the information about a VirtQueue VirtQueueElement (by
>> +# default looks at the head of the queue)
>> +#
>> +# @path: VirtIODevice canonical QOM path
>> +#
>> +# @queue: VirtQueue index to examine
>> +#
>> +# @index: the index in the queue, by default head
>> +#
>> +# Features:
>> +# @unstable: This command is meant for debugging.
>> +#
>> +# Returns: VirtioQueueElement information
>> +#
>> +# Since: 6.3
>> +#
>> +# Examples:
>> +#
>> +# 1. Introspect on virtio-net virtqueue 0 at index 5
>> +#
>> +# -> { "execute": "x-query-virtio-queue-element",
>> +#      "arguments": { "path": "/machine/peripheral-anon/device[1]/virtio-backend",
>> +#                     "queue": 0,
>> +#                     "index": 5 }
>> +#    }
>> +# <- { "return": {
>> +#         "index": 5,
>> +#         "ndescs": 1,
>> +#         "device-name": "virtio-net",
>> +#         "descs": [ { "flags": ["write"], "len": 1536, "addr": 5257305600 } ],
>> +#         "avail": { "idx": 256, "flags": 0, "ring": 5 },
>> +#         "used": { "idx": 13, "flags": 0 } }
>> +#    }
>> +#
>> +# 2. Introspect on virtio-crypto virtqueue 1 at head
>> +#
>> +# -> { "execute": "x-query-virtio-queue-element",
>> +#      "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend",
>> +#                     "queue": 1 }
>> +#    }
>> +# <- { "return": {
>> +#         "index": 0,
>> +#         "ndescs": 1,
>> +#         "device-name": "virtio-crypto",
>> +#         "descs": [ { "flags": [], "len": 0, "addr": 8080268923184214134 } ],
>> +#         "avail": { "idx": 280, "flags": 0, "ring": 0 },
>> +#         "used": { "idx": 280, "flags": 0 } }
>> +#    }
>> +#
>> +# 3. Introspect on virtio-scsi virtqueue 2 at head
>> +#
>> +# -> { "execute": "x-query-virtio-queue-element",
>> +#      "arguments": { "path": "/machine/peripheral-anon/device[2]/virtio-backend",
>> +#                     "queue": 2 }
>> +#    }
>> +# <- { "return": {
>> +#         "index": 19,
>> +#         "ndescs": 1,
>> +#         "device-name": "virtio-scsi",
>> +#         "descs": [ { "flags": ["used", "indirect", "write"], "len": 4099327944,
>> +#                      "addr": 12055409292258155293 } ],
>> +#         "avail": { "idx": 1147, "flags": 0, "ring": 19 },
>> +#         "used": { "idx": 1147, "flags": 0 } }
>> +#    }
>> +#
>> +##
>> +
>> +{ 'command': 'x-query-virtio-queue-element',
>> +  'data': { 'path': 'str', 'queue': 'uint16', '*index': 'uint16' },
>> +  'returns': 'VirtioQueueElement', 'features': [ 'unstable' ] }

[-- Attachment #2: Type: text/html, Size: 6947 bytes --]

  reply	other threads:[~2021-11-11 10:20 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-10 10:23 [PATCH v9 0/8] hmp,qmp: Add commands to introspect virtio devices Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 1/8] virtio: drop name parameter for virtio_init() Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 2/8] virtio: add vhost support for virtio devices Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 3/8] qmp: add QMP command x-query-virtio Jonah Palmer
2021-11-10 12:03   ` Markus Armbruster
2021-11-11  9:07     ` Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 4/8] qmp: add QMP command x-query-virtio-status Jonah Palmer
2021-11-10 13:08   ` Markus Armbruster
2021-11-11  9:09     ` Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 5/8] qmp: decode feature & status bits in virtio-status Jonah Palmer
2021-11-10 13:49   ` Markus Armbruster
2021-11-11 10:15     ` Jonah Palmer
2021-11-19 12:32       ` Markus Armbruster
2021-11-10 10:23 ` [PATCH v9 6/8] qmp: add QMP commands for virtio/vhost queue-status Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 7/8] qmp: add QMP command x-query-virtio-queue-element Jonah Palmer
2021-11-10 13:52   ` Markus Armbruster
2021-11-11 10:18     ` Jonah Palmer [this message]
2021-11-19 12:33       ` Markus Armbruster
2021-11-10 10:23 ` [PATCH v9 8/8] hmp: add virtio commands Jonah Palmer
2021-11-10 13:30   ` Markus Armbruster
2021-11-11 10:25     ` Jonah Palmer

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=4bfacace-2cb4-9df9-8990-dce3a9a2d9ba@oracle.com \
    --to=jonah.palmer@oracle.com \
    --cc=arei.gonglei@huawei.com \
    --cc=armbru@redhat.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=david@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=groug@kaod.org \
    --cc=joao.m.martins@oracle.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mathieu.poirier@linaro.org \
    --cc=michael.roth@amd.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu_oss@crudebyte.com \
    --cc=raphael.norwitz@nutanix.com \
    --cc=si-wei.liu@oracle.com \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.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 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).