This patch series implement public api for controlling various memory tunables
exported by the OS. This is based on the following RFC[1].
* Implement virDomainSetMemoryParameters api
* Provide implementation for remote, QEmu and LXC drivers
* Enable memory controller support fro QEmu
* virsh command for runtime changes to the memory parameters
* Domain configuration parsing for memory control parameters
* Cgroup memory controller code for memory hard_limit/soft_limit, swap
hard_limit
To Do
* Python bindings is just a place holder, need to implement
* virDomainGetMemoryParameters
1.
https://www.redhat.com/archives/libvir-list/2010-August/msg00607.html
2.
https://www.redhat.com/archives/libvir-list/2010-August/msg00699.html
---
Nikunj A. Dadhania (12):
Adding virDomainSetMemoryParameters API
Adding structure for virDomainSetMemoryParameter
Adds xml entries for memory tunables
XML parsing for memory tunables
Hand-coded python bindings for virDomainSetMemoryParameters
Implement driver interface domainSetMemoryParamters for QEmu
Implement cgroup memory controller tunables
Adding memtunables to libvirt-lxc command
Adding memtunables to qemuSetupCgroup
Adding memtune command to virsh tool
Implements virDomainSetMemoryParameters for the remote driver
Implement domainSetMemoryParameters function
daemon/remote.c | 66 +++++++++++++++++
daemon/remote_dispatch_prototypes.h | 8 ++
daemon/remote_dispatch_table.h | 5 +
docs/schemas/domain.rng | 31 ++++++++
include/libvirt/libvirt.h.in | 56 ++++++++++++++
python/generator.py | 1
python/libvirt-override-api.xml | 6 ++
python/libvirt-override.c | 7 ++
src/conf/domain_conf.c | 50 +++++++++++--
src/conf/domain_conf.h | 12 ++-
src/driver.h | 6 ++
src/esx/esx_driver.c | 1
src/esx/esx_vmx.c | 30 ++++----
src/libvirt.c | 48 ++++++++++++
src/libvirt_private.syms | 6 ++
src/libvirt_public.syms | 5 +
src/lxc/lxc_controller.c | 24 ++++++
src/lxc/lxc_driver.c | 101 ++++++++++++++++++++++++--
src/openvz/openvz_driver.c | 9 +-
src/phyp/phyp_driver.c | 1
src/qemu/qemu.conf | 4 +
src/qemu/qemu_conf.c | 11 ++-
src/qemu/qemu_driver.c | 138 +++++++++++++++++++++++++++++++++--
src/remote/remote_driver.c | 66 +++++++++++++++++
src/remote/remote_protocol.c | 62 +++++++++++++++-
src/remote/remote_protocol.h | 36 +++++++++
src/test/test_driver.c | 13 ++-
src/uml/uml_conf.c | 2 -
src/uml/uml_driver.c | 15 ++--
src/util/cgroup.c | 106 +++++++++++++++++++++++++++
src/util/cgroup.h | 7 ++
src/xen/xen_driver.c | 1
tools/virsh.c | 89 +++++++++++++++++++++++
33 files changed, 955 insertions(+), 68 deletions(-)