This patch is to add the call back functions for setting huge page. Clicking GTKCheck button will invoke these functions. Signed-off-by: Li Zhang <zhlcindy@xxxxxxxxxxxxxxxxxx> --- src/virtManager/details.py | 23 ++++++++++++++++++++++- src/virtManager/domain.py | 7 +++++++ 2 files changed, 29 insertions(+), 1 deletions(-) diff --git a/src/virtManager/details.py b/src/virtManager/details.py index fcd0652..92a13d8 100644 --- a/src/virtManager/details.py +++ b/src/virtManager/details.py @@ -38,7 +38,7 @@ from virtManager import util as util import virtinst # Parameters that can be editted in the details window -EDIT_TOTAL = 35 +EDIT_TOTAL = 36 (EDIT_NAME, EDIT_ACPI, EDIT_APIC, @@ -52,6 +52,7 @@ EDIT_CPU, EDIT_TOPOLOGY, EDIT_MEM, +EDIT_HUGEPG, EDIT_AUTOSTART, EDIT_BOOTORDER, @@ -396,6 +397,7 @@ class vmmDetails(vmmGObjectUI): "on_config_memory_changed": self.config_memory_changed, "on_config_maxmem_changed": self.config_maxmem_changed, + "on_config_hugepage_changed": self.config_hugepage_changed, "on_config_boot_moveup_clicked" : (self.config_boot_move, True), "on_config_boot_movedown_clicked" : (self.config_boot_move, @@ -1702,6 +1704,15 @@ class vmmDetails(vmmGObjectUI): maxadj.value = mem maxadj.lower = mem + def config_hugepage_changed(self, ignore): + self.enable_apply(EDIT_HUGEPG) + widget = self.widget("config-hugepage") + incon = widget.get_inconsistent() + widget.set_inconsistent(False) + if incon: + widget.set_active(True) + self.enable_apply(EDIT_HUGEPG) + def generate_cpuset(self): mem = int(self.vm.get_memory()) / 1024 / 1024 return virtinst.Guest.generate_cpuset(self.conn.vmm, mem) @@ -2067,6 +2078,12 @@ class vmmDetails(vmmGObjectUI): add_define(self.vm.define_both_mem, curmem, maxmem) add_hotplug(self.vm.hotplug_both_mem, curmem, maxmem) + if self.editted(EDIT_HUGEPG): + enable_hugepage = self.widget("config-hugepage").get_active() + if self.widget("config-hugepage").get_inconsistent(): + enable_hugepage = None + add_define(self.vm.define_hugepage, enable_hugepage) + return self._change_config_helper(df, da, hf, ha) # Boot device / Autostart @@ -2710,6 +2727,7 @@ class vmmDetails(vmmGObjectUI): host_mem = self.vm.conn.host_memory_size() / 1024 vm_cur_mem = self.vm.get_memory() / 1024.0 vm_max_mem = self.vm.maximum_memory() / 1024.0 + vm_huge_page = self.vm.get_hugepage() host_mem_widget.set_text("%d MB" % (int(round(host_mem)))) @@ -2721,6 +2739,9 @@ class vmmDetails(vmmGObjectUI): if not self.widget("config-memory").get_property("sensitive"): maxmem.lower = curmem.value + self.widget("config-hugepage").set_active(bool(vm_huge_page)) + self.widget("config-hugepage").set_inconsistent( + vm_huge_page is None and self.is_customize_dialog) def refresh_disk_page(self): disk = self.get_hw_selection(HW_LIST_COL_DEVICE) diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py index f1e601b..e29a1c0 100644 --- a/src/virtManager/domain.py +++ b/src/virtManager/domain.py @@ -481,6 +481,11 @@ class vmmDomain(vmmLibvirtObject): guest.maxmemory = int(int(maxmem) / 1024) return self._redefine_guest(change) + def define_hugepage(self, newvalue): + def change(guest): + guest.hugepage = newvalue + return self._redefine_guest(change) + # Security define methods def define_seclabel(self, model, t, label): @@ -847,6 +852,8 @@ class vmmDomain(vmmLibvirtObject): return int(self._get_guest().memory * 1024) def maximum_memory(self): return int(self._get_guest().maxmemory * 1024) + def get_hugepage(self): + return self._get_guest().hugepage def vcpu_count(self): return int(self._get_guest().vcpus) -- 1.7.4.1