ProcFSTools: fix read_meminfo without KSM
authorStoiko Ivanov <s.ivanov@proxmox.com>
Tue, 5 May 2020 15:01:07 +0000 (17:01 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 5 May 2020 16:25:57 +0000 (18:25 +0200)
on kernel configs where KSM is not enabled (e.g. an openstack instance at
OVH) the file /sys/kernel/mm/ksm/pages_sharing does not exist.
In that case there is no memory shared so assuming 0 is reasonable.

While this is not the case with our shipped kernel, and thus will probably
not happen on a PVE installation, PMG can run quite happily with a different
kernel (the reporter had this on an openstack instance at OVH).

a quick grep through our codebase showed only the API2::Nodes::Nodeinfo::status
call as user of the memshared property.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
src/PVE/ProcFSTools.pm

index 7f905f418fdcd346375f09dd1ec58147393eb618..e413ccf1c50b1f90575f9cb9a764c45fcc73a962 100644 (file)
@@ -249,7 +249,7 @@ sub read_meminfo {
     $res->{swapfree} = $d->{swapfree};
     $res->{swapused} = $res->{swaptotal} - $res->{swapfree};
 
-    my $spages = PVE::Tools::file_read_firstline("/sys/kernel/mm/ksm/pages_sharing");
+    my $spages = PVE::Tools::file_read_firstline("/sys/kernel/mm/ksm/pages_sharing") // 0 ;
     $res->{memshared} = int($spages) * 4096;
 
     return $res;