> -----Original Message----- > From: motohiro.kos...@us.fujitsu.com [mailto:motohiro.kos...@us.fujitsu.com] > Sent: Wednesday, June 25, 2014 3:41 PM > To: Rafael Aquini; linux...@kvack.org > Cc: Andrew Morton; Rik van Riel; Mel Gorman; Johannes Weiner; Motohiro Kosaki > JP; linux-kernel@vger.kernel.org > Subject: RE: [PATCH] mm: export NR_SHMEM via sysinfo(2) / si_meminfo() > interfaces > > > > > -----Original Message----- > > From: Rafael Aquini [mailto:aqu...@redhat.com] > > Sent: Wednesday, June 25, 2014 2:40 PM > > To: linux...@kvack.org > > Cc: Andrew Morton; Rik van Riel; Mel Gorman; Johannes Weiner; Motohiro > > Kosaki JP; linux-kernel@vger.kernel.org > > Subject: [PATCH] mm: export NR_SHMEM via sysinfo(2) / si_meminfo() > > interfaces > > > > This patch leverages the addition of explicit accounting for pages > > used by shmem/tmpfs -- "4b02108 mm: oom analysis: add shmem vmstat" -- > > in order to make the users of sysinfo(2) and si_meminfo*() friends aware of > > that vmstat entry consistently across the interfaces. > > Why? > Traditionally sysinfo.sharedram was not used for shmem. It was totally > strange semantics and completely outdated feature. > So, we may reuse it for another purpose. But I'm not sure its benefit. > > Why don't you use /proc/meminfo? > I'm afraid userland programs get a confusion.
For the record. This is historical implementation at linux-2.3.12. I.e. account sum of page count. void si_meminfo(struct sysinfo *val) { int i; i = max_mapnr; val->totalram = 0; val->sharedram = 0; val->freeram = nr_free_pages << PAGE_SHIFT; val->bufferram = atomic_read(&buffermem); while (i-- > 0) { if (PageReserved(mem_map+i)) continue; val->totalram++; if (!page_count(mem_map+i)) continue; val->sharedram += page_count(mem_map+i) - 1; } val->totalram <<= PAGE_SHIFT; val->sharedram <<= PAGE_SHIFT; return; } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/