]> git.proxmox.com Git - pve-manager.git/commitdiff
rebalance_lxc_containers: do not use vmstatus, call from updata_status
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 26 Oct 2016 13:47:08 +0000 (15:47 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 26 Oct 2016 13:47:08 +0000 (15:47 +0200)
Simply use PVE::LXC::config_list() and test if there is a cgroup.

PVE/Service/pvestatd.pm

index c1be8713c9eb0ea90b5329e5e0072d8e2ef12df9..72c9dcff994d1836db23589e071920f6d325d720 100755 (executable)
@@ -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);
     };