Wenchao Xia <xiaw...@linux.vnet.ibm.com> writes: >>> # Statistics of a virtual block device or a block backing device. >>> diff --git a/qmp-commands.hx b/qmp-commands.hx >>> index 1e0e11e..6b20684 100644 >>> --- a/qmp-commands.hx >>> +++ b/qmp-commands.hx >>> @@ -1765,6 +1765,61 @@ EQMP >>> }, >>> >>> SQMP >>> +query-snapshots >>> +--------------- >>> + >>> +Show the internal consistent snapshot information >>> + >>> +Each snapshot is represented by a json-object. The returned value >>> +is a json-array of all snapshots >>> + >>> +Each json-object contain the following: >>> + >>> +- "id": unique snapshot id (json-string) >>> +- "name": internal snapshot name (json-string) >>> +- "vm-state-size": size of the VM state in bytes (json-int) >>> +- "date-sec": UTC date of the snapshot in seconds (json-int) >>> +- "date-nsec": fractional part in nanoseconds to be used with >>> + date-sec(json-int) >>> +- "vm-clock-sec": VM clock relative to boot in seconds (json-int) >>> +- "vm-clock-nsec": fractional part in nanoseconds to be used with >>> + vm-clock-sec (json-int) >>> + >>> +Example: >>> + >>> +-> { "execute": "query-snapshots" } >>> +<- { >>> + "return":[ >>> + { >>> + "id": "1", >>> + "name": "snapshot1", >>> + "vm-state-size": 0, >>> + "date-sec": 10000200, >>> + "date-nsec": 12, >>> + "vm-clock-sec": 206, >>> + "vm-clock-nsec": 30 >> >> Not your patch's fault, but here goes anyway: I dislike this >> representation of time. >> >> QMP has time in seconds, milliseconds, nanoseconds, (seconds, >> milliseconds) and (seconds, nanoseconds). There has been no adult >> supervision, obviously (I may say that, because it's as much my fault as >> it's anybody else's). >> >> The sanest one by far is nanoseconds. Good for 2^63 of them. Since pi >> seconds is a nanocentury, good for 2^63 / (pi * 1e9) centuries, which >> should be safely beyond your retirement age. >> > OK, will insert a patch before removing "vm-clock-sec".
Before you do that, let's get Luiz's blessing. > Have one > question: how to declare uint64_t in qmp-schema.json? You can't. All we got is 'int'. The implementation restricts 'int' values to 64 bits signed. Plenty of range for this purpose. [...]