[libvirt] [PATCH 0/8] logically memory hotplug via guest agent

Zhang Bo oscar.zhangbo at huawei.com
Tue Jun 9 09:33:24 UTC 2015


Logically memory hotplug via guest agent, by enabling/disabling memory blocks.
The corresponding qga commands are: 'guest-get-memory-blocks',
'guest-set-memory-blocks' and 'guest-get-memory-block-info'.

detailed flow:
    1 get memory block list, each member has 'phy-index', 'online' and 'can-offline' parameters
    2 get memory block size, normally 128MB or 256MB for most OSes
    3 convert the target memory size to memory block number, and see if there's enough memory
      blocks to be set online/offline.
    4 update the memory block list info, and let guest agent to set memory blocks online/offline.


Note that because we hotplug memory logically by online/offline MEMORY BLOCKS,
and each memory block has a size much bigger than KiB, there's a deviation
with the range of (0, block_size). block_size may be 128MB or 256MB or etc.,
it differs on different OSes.


Zhang Bo (8):
  lifecycle: add flag VIR_DOMAIN_MEM_GUEST for viDomainSetMemoryFlags
  qemu: agent: define structure of qemuAgentMemblockInfo
  qemu: agent: implement qemuAgentGetMemblocks
  qemu: agent: implement qemuAgentGetMemblockGeneralInfo
  qemu: agent: implement qemuAgentUpdateMemblocks
  qemu: agent: implement function qemuAgetSetMemblocks
  qemu: memory: logically hotplug memory with guest agent
  virsh: support memory hotplug with guest agent in virsh

 include/libvirt/libvirt-domain.h |   1 +
 src/libvirt-domain.c             |   7 +
 src/qemu/qemu_agent.c            | 307 +++++++++++++++++++++++++++++++++++++++
 src/qemu/qemu_agent.h            |  22 +++
 src/qemu/qemu_driver.c           |  46 +++++-
 tools/virsh-domain.c             |  10 +-
 tools/virsh.pod                  |   7 +-
 7 files changed, 396 insertions(+), 4 deletions(-)

-- 
1.7.12.4





More information about the libvir-list mailing list