From e0dc09ad0f9b79ca072485c916405402d9f8f52d Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Wed, 26 Oct 2016 15:47:08 +0200 Subject: [PATCH] rebalance_lxc_containers: do not use vmstatus, call from updata_status Simply use PVE::LXC::config_list() and test if there is a cgroup. --- PVE/Service/pvestatd.pm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/PVE/Service/pvestatd.pm b/PVE/Service/pvestatd.pm index c1be8713..72c9dcff 100755 --- a/PVE/Service/pvestatd.pm +++ b/PVE/Service/pvestatd.pm @@ -226,7 +226,6 @@ my $persistent_container_order = {}; my $persistent_container_order_counter = 0; sub rebalance_lxc_containers { - my ($vmstatus) = @_; return if !-d '/sys/fs/cgroup/cpuset/lxc'; # nothing to do... @@ -237,9 +236,10 @@ sub rebalance_lxc_containers { my @cpu_ctcount = (0) x $PVE::CpuSet::MAX_CPUID; my @balanced_cts; - foreach my $vmid (sort keys %$vmstatus) { - my $d = $vmstatus->{$vmid}; - next if !$d->{pid}; + my $ctlist = PVE::LXC::config_list(); + + foreach my $vmid (sort keys %$ctlist) { + next if ! -d "/sys/fs/cgroup/cpuset/lxc/$vmid"; my ($conf, $cpuset); eval { @@ -349,8 +349,6 @@ sub update_lxc_status { $plugin->update_lxc_status($plugin_config, $vmid, $d, $ctime); } } - - rebalance_lxc_containers($vmstatus); } sub update_storage_status { @@ -412,6 +410,12 @@ sub update_status { $err = $@; syslog('err', "lxc status update error: $err") if $err; + eval { + rebalance_lxc_containers(); + }; + $err = $@; + syslog('err', "lxc cpuset rebalance error: $err") if $err; + eval { update_storage_status($status_cfg); };