This patch series add three guest commands about memory block: guest-get-memory-blocks, guest-set-memory-blocks, guest-get-memory-block-size.
With these three commands, we can get information about guest's memory block online/offline status and memory block size (unit of memory online/offline operation ). Also, we can change guest's memory block status (Logical memory hotplug/unplug) from host. Example of usage: {"execute":"guest-get-memory-blocks"} {"return":[{"online":true,"can-offline":false,"phys-index":0},{"online":true,"can-offline":true,"phys-index":1},{"online":true,"can-offline":false,"phys-index":2},{"online":true,"can-offline":false,"phys-index":3}]} {"execute":"guest-set-memory-blocks","arguments":{"mem-blks":[{"phys-index":0,"online":false},{"phys-index":1,"online":false},{"phys-index":3,"online":false}]}} {"return":[{"response":"operation-failed","error-code":22,"phys-index":0},{"response":"success","phys-index":1},{"response":"operation-failed","error-code":16,"phys-index":3}]} {"execute":"guest-get-memory-block-size"} {"return":134217728} v2: - Change return value of 'guest-set-memory-blocks' command from 'int' to a list of 'GuestMemoryBlockResponse', which contains more info about the operation results. It is suggested by Michael Roth. It is more useful for callers to know the exact operation result for each memory block, and also they can help callers to decide what to do next according to different error-code. zhanghailiang (5): qga: introduce three guest memory block commmands with stubs qga: implement qmp_guest_get_memory_blocks() for Linux with sysfs qga: implement qmp_guest_set_memory_blocks() for Linux with sysfs qga: implement qmp_guest_get_memory_block_size() for Linux with sysfs qga: add memory block command that unsupported to blacklist qga/commands-posix.c | 324 ++++++++++++++++++++++++++++++++++++++++++++++++++- qga/commands-win32.c | 21 ++++ qga/qapi-schema.json | 114 ++++++++++++++++++ 3 files changed, 458 insertions(+), 1 deletion(-) -- 1.7.12.4