On Thu, 17 Apr 2014 01:26:13 +0100 Pádraig Brady <p...@draigbrady.com> wrote:
> 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. The recent musl implementation of _SC_PHYS_PAGES will do a sysinfo call so on musl 2 sysconf() calls will be microscopically slower. I doubt that matter for any practical purpose anyways so no problem for me if you prefer that. > 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(). Ah, yes. I'll send a new patch. > thanks, > Pádraig. >