On 04/15/2014 03:49 PM, Pádraig Brady wrote: > On 04/15/2014 03:43 PM, Natanael Copa wrote: >> * lib/physmem.c (physmem_total): Some systems like musl libc does not >> (yet) support _SC_PHYS_PAGES. Use the linux syscall sysinfo first and >> fallback to sysconf with _SC_PHYS_PAGES and _SC_PAGESIZE. > > This looks good. > I confirmed the values are the same on a > 2.6.43.8-2.fc15.x86_64 system at least.
Actually sysinfo() returns dynamic stats too, and thus could have more overhead. Therefore I suggest we use sysinfo() as the fallback if _SC_PHYS_PAGES is not available. Also I see that one should multiply totalram * mem_unit (note cast to double first to avoid overflow). So handiest is to check for the mem_unit member to conditionalize the use of sysinfo(). thanks, Pádraig.