On 09/08/2015 02:00 AM, Denis V. Lunev wrote: > From: Raushaniya Maksudova <[email protected]> > > This patch adds "info disk-deadlines" qemu-monitor option that prints > dump of all disk requests which caused a disk deadline in Guest OS > from the very start of Virtual Machine: > > disk_id type size total_time start_time > .-------------------------------------------------------- > ide0-hd1 FLUSH 0b 46.403s 22232930059574ns > ide0-hd1 FLUSH 0b 57.591s 22451499241285ns > ide0-hd1 FLUSH 0b 103.482s 22574100547397ns > > Signed-off-by: Raushaniya Maksudova <[email protected]> > Signed-off-by: Denis V. Lunev <[email protected]> > CC: Stefan Hajnoczi <[email protected]> > CC: Kevin Wolf <[email protected]> > CC: Markus Armbruster <[email protected]> > CC: Luiz Capitulino <[email protected]> > ---
qapi interface review only:
> +++ b/qapi-schema.json
> @@ -3808,3 +3808,36 @@
>
> # Rocker ethernet network switch
> { 'include': 'qapi/rocker.json' }
> +
> +## @DiskDeadlinesInfo
> +#
> +# Contains info about late requests which caused VM stopping
> +#
> +# @disk-id: name of disk (unique for each disk)
Mark this with '#optional', and maybe describe why it would be missing.
Does this correspond to the BDS node name where the deadline expired,
in which case 'node' might be a nicer name than 'disk-id'?
> +#
> +# @type: type of request could be READ, WRITE or FLUSH
Likewise for using #optional. Please make this an enum type, not an
open-coded string.
> +#
> +# @size: size in bytes
of the failed request? Should you also mention which offset the failed
request started at?
> +#
> +# @total-time-ns: total time of request execution
> +#
> +# @start-time-ns: indicates the start of request execution
> +#
> +# Since: 2.5
> +##
> +{ 'struct': 'DiskDeadlinesInfo',
> + 'data' : { '*disk-id': 'str',
> + '*type': 'str',
> + 'size': 'uint64',
> + 'total-time-ns': 'uint64',
> + 'start-time-ns': 'uint64' } }
> +##
> +# @query-disk-deadlines:
> +#
> +# Returns information about last late disk requests.
> +#
> +# Returns: a list of @DiskDeadlinesInfo
> +#
> +# Since: 2.5
> +##
> +{ 'command': 'query-disk-deadlines', 'returns': ['DiskDeadlinesInfo'] }
Should it be possible to filter to deadlines missed for a specific node,
by having an arguments with an optional node name?
Should any of the existing query-block or similar commands be modified
to make it obvious that there are missed deadline stats, and that it
would be useful to call query-disk-deadlines to learn more about them?
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
