From c8effec354c6323124187cf77facd78a491a2262 Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Thu, 28 May 2015 15:59:22 +0200 Subject: [PATCH] implement hotplug for cpuunits Signed-off-by: Alexandre Derumier --- PVE/QemuServer.pm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 3cd4475..fe40140 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -67,6 +67,17 @@ PVE::JSONSchema::register_standard_option('pve-snapshot-name', { #no warnings 'redefine'; +sub cgroups_write { + my ($controller, $vmid, $option, $value) = @_; + + my $root_path = "/sys/fs/cgroup/"; + my $vm_path = $root_path.$controller."/qemu.slice/$vmid.scope"; + return if !$vm_path; + + PVE::ProcFSTools::write_proc_entry("$vm_path/$option", $value); + +} + unless(defined(&_VZSYSCALLS_H_)) { eval 'sub _VZSYSCALLS_H_ () {1;}' unless defined(&_VZSYSCALLS_H_); require 'sys/syscall.ph'; @@ -3906,6 +3917,8 @@ sub vmconfig_hotplug_pending { } elsif ($opt =~ m/^memory$/) { die "skip\n" if !$hotplug_features->{memory}; qemu_memory_hotplug($vmid, $conf, $defaults, $opt); + } elsif ($opt eq 'cpuunits') { + cgroups_write("cpu", $vmid, "cpu.shares", $defaults->{cpuunits}); } else { die "skip\n"; } @@ -3959,6 +3972,8 @@ sub vmconfig_hotplug_pending { } elsif ($opt =~ m/^memory$/) { #dimms die "skip\n" if !$hotplug_features->{memory}; $value = qemu_memory_hotplug($vmid, $conf, $defaults, $opt, $value); + } elsif ($opt eq 'cpuunits') { + cgroups_write("cpu", $vmid, "cpu.shares", $conf->{pending}->{$opt}); } else { die "skip\n"; # skip non-hot-pluggable options } -- 2.39.2