On Wed, 26 Jun 2019 11:04:29 -0700 semenzato@xxxxxxxxxxxx wrote: > From: Luigi Semenzato <semenzato@xxxxxxxxxxxx> > > Report separate components (anon, file, and shmem) > for PSS in smaps_rollup. > > This helps understand and tune the memory manager behavior > in consumer devices, particularly mobile devices. Many of > them (e.g. chromebooks and Android-based devices) use zram > for anon memory, and perform disk reads for discarded file > pages. The difference in latency is large (e.g. reading > a single page from SSD is 30 times slower than decompressing > a zram page on one popular device), thus it is useful to know > how much of the PSS is anon vs. file. > > This patch also removes a small code duplication in smaps_account, > which would have gotten worse otherwise. > > Also added missing entry for smaps_rollup in > Documentation/filesystems/proc.txt. > > ... > > -static void __show_smap(struct seq_file *m, const struct mem_size_stats *mss) > +static void __show_smap(struct seq_file *m, const struct mem_size_stats *mss, > + bool rollup_mode) > { > SEQ_PUT_DEC("Rss: ", mss->resident); > SEQ_PUT_DEC(" kB\nPss: ", mss->pss >> PSS_SHIFT); > + if (rollup_mode) { > + /* > + * These are meaningful only for smaps_rollup, otherwise two of > + * them are zero, and the other one is the same as Pss. > + */ > + SEQ_PUT_DEC(" kB\nPss_Anon: ", > + mss->pss_anon >> PSS_SHIFT); > + SEQ_PUT_DEC(" kB\nPss_File: ", > + mss->pss_file >> PSS_SHIFT); > + SEQ_PUT_DEC(" kB\nPss_Shmem: ", > + mss->pss_shmem >> PSS_SHIFT); > + } Documentation/filesystems/proc.txt is rather incomplete. It documents /proc/PID/smaps (seems to be out of date) but doesn't describe the fields in smaps_rollup. Please update Documentation/ABI/testing/procfs-smaps_rollup and please check that it's up-to-date while you're in there.