Fix calculation of physical memory on linux systems
As stated in the sysinfo manpage the totalram field in the sysinfo structure is in mem_unit sizes since Linux 2.3.23. To get the actual memory in the system the totalram value has to be multiplied with the mem_unit size.
This commit is contained in:
parent
2edac33c58
commit
3e74e96649
@ -21,6 +21,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/sysinfo.h>
|
#include <sys/sysinfo.h>
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
|
#include <inttypes.h>
|
||||||
#include "util/dstr.h"
|
#include "util/dstr.h"
|
||||||
#include "obs-internal.h"
|
#include "obs-internal.h"
|
||||||
|
|
||||||
@ -128,8 +129,8 @@ static void log_memory_info(void)
|
|||||||
if (sysinfo(&info) < 0)
|
if (sysinfo(&info) < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
blog(LOG_INFO, "Physical Memory: %luMB Total",
|
blog(LOG_INFO, "Physical Memory: %"PRIu64"MB Total",
|
||||||
info.totalram / 1024 / 1024);
|
(uint64_t)info.totalram * info.mem_unit / 1024 / 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void log_kernel_version(void)
|
static void log_kernel_version(void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user