Re: shmem info issue

From: Hugh Dickins
Date: Fri Jul 12 2013 - 18:58:36 EST


On Fri, 12 Jul 2013, naveen yadav wrote:
> Hi All
>
> I am working on tmpfs. During code analysis I found shmem driver
> register itself as tmpfs .
>
> cat /proc/meminfo Shmem field read NR_SHMEM enum filed and shows used
> memory in tmpfs
>
>
> [root@localhost linux-3.8.2]# cat /proc/meminfo | grep -r Shmem
> Shmem: 704 kB
> [root@localhost linux-3.8.2]#
>
> include/linux/mmzone.h
> enum zone_stat_item {
> -----cut here-------
> NR_SHMEM, /* shmem pages (included tmpfs/GEM pages
> -----cut here
> }
>
> I have the following query
> 1-> cat /proc/meminfo | grep -r Shmem show only the used tmpfs memory
> or it show used tmpfs memory + mata data also (because I found Shmem
> is bit larger then tempfs used memory )

"Shmem" includes only data, not metadata, nor memory currently swapped
out. But it includes tmpfs memory, SysV shared memory (from ipc/shm.c),
POSIX shared memory (under /dev/shm), and shared anonymous mappings
(from mmap of /dev/zero with MAP_SHARED: see call to shmem_zero_setup()
from drivers/char/mem.c): whatever allocates pages through mm/shmem.c.

> 2-> as per the developer comments NR_SHMEM included tmpfs and GEM
> pages whct is Gem pages

Ah yes, and the Graphics Execution Manager uses shmem for objects shared
with the GPU: see use of shmem_read_mapping_page*() in drivers/gpu/drm/.

> 3-> is my above code analysis is correct?

I think so.

Hugh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/