linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: gregory.0xf0@gmail.com (Gregory Fong)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: print cma-reserved pages from show_mem
Date: Sun, 12 Apr 2015 18:09:13 -0700	[thread overview]
Message-ID: <20150413010913.GA15225@corellia.local> (raw)
In-Reply-To: <20150410112430.GB12732@n2100.arm.linux.org.uk>

On Fri, Apr 10, 2015 at 12:24:31PM +0100, Russell King - ARM Linux wrote:
> On Fri, Apr 10, 2015 at 01:18:04PM +0800, Wang, Yalin wrote:
> > > [   12.212102] active_anon:734 inactive_anon:1189 isolated_anon:0
> > > [   12.212102]  active_file:0 inactive_file:0 isolated_file:0
> > > [   12.212102]  unevictable:0 dirty:0 writeback:0 unstable:0
> > > [   12.212102]  free:254104 slab_reclaimable:82 slab_unreclaimable:843
> 
> Here, we have 82 pages reclaimable, which is 328kB, and 843 unreclaimable
> which is 3372kB, which is a total of 925 pages.
> 
> > > [   12.212102]  mapped:429 shmem:1815 pagetables:13 bounce:0
> > > [   12.212102]  free_cma:4032
> > > [   12.243172] DMA free:754080kB min:3472kB low:4340kB high:5208kB
> > > active_anon:180kB inactive_anon:0kB active_file:0kB inactive_file:0kB
> > > unevictable:0kB isolated(anon):0kB isolated(file):0kB present:778240kB
> > > managed:759252kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB
> > > shmem:0kB slab_reclaimable:328kB slab_unreclaimable:3372kB
> 
> Which agrees here.
> 
> > > [   12.401609] 834 slab pages
> 
> but not here... this is an interesting difference, because in the ARM
> version of show_mem(), we count the actual number of pages where
> PageSlab() returns true.  Can slab pages also be reserved pages or
> swap cache pages?  I thought they were exclusive of those.  So, the
> question comes... why the difference in accounting, and which one is
> correct.
> 
> Maybe there's a bug in the accounting somewhere...

Yes, the ARM show_mem wasn't updated after the various allocators
(SLUB, SLAB, SLOB) were updated to use compound pages.  Fixing it, you
get

[    7.081826] sysrq: SysRq : Show Memory
[    7.085610] Mem-info:
[    7.087890] DMA per-cpu:
[    7.090431] CPU    0: hi:  186, btch:  31 usd:  98
[    7.095230] HighMem per-cpu:
[    7.098116] CPU    0: hi:   90, btch:  15 usd:  29
[    7.102923] active_anon:724 inactive_anon:1189 isolated_anon:0
[    7.102923]  active_file:0 inactive_file:0 isolated_file:0
[    7.102923]  unevictable:0 dirty:0 writeback:0 unstable:0
[    7.102923]  free:253980 slab_reclaimable:83 slab_unreclaimable:846
[    7.102923]  mapped:429 shmem:1815 pagetables:15 bounce:0
[    7.102923]  free_cma:4032
[    7.133995] DMA free:753344kB min:3472kB low:4340kB high:5208kB active_anon:292kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:778240kB managed:759188kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:332kB slab_unreclaimable:3384kB kernel_stack:256kB pagetables:36kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes
[    7.174080] lowmem_reserve[]: 0 0 264 264
[    7.178175] HighMem free:262576kB min:264kB low:572kB high:884kB active_anon:2604kB inactive_anon:4756kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:270336kB managed:270336kB mlocked:0kB dirty:0kB writeback:0kB mapped:1716kB shmem:7260kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:24kB unstable:0kB bounce:0kB free_cma:16128kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes
[    7.218955] lowmem_reserve[]: 0 0 0 0
[    7.222687] DMA: 8*4kB (UEM) 8*8kB (UM) 4*16kB (UEM) 5*32kB (UM) 2*64kB (M) 4*128kB (UEM) 3*256kB (M) 2*512kB (EM) 5*1024kB (UEM) 6*2048kB (UEM) 3*4096kB (EM) 88*8192kB (MR) = 753344kB
[    7.239477] HighMem: 0*4kB 0*8kB 1*16kB (M) 1*32kB (M) 2*64kB (UM) 2*128kB (UM) 2*256kB (UC) 3*512kB (UMC) 2*1024kB (UC) 2*2048kB (UC) 2*4096kB (UC) 30*8192kB (MRC) = 262576kB
[    7.255455] 1815 total pagecache pages
[    7.259211] 0 pages in swap cache
[    7.262533] Swap cache stats: add 0, delete 0, find 0/0
[    7.267764] Free swap  = 0kB
[    7.270647] Total swap = 0kB
[    7.282890] 262144 pages of RAM
[    7.286041] 254274 free pages
[    7.289013] 4763 reserved pages
[    7.292157] 929 slab pages
[    7.294868] 1063 pages shared
[    7.297839] 0 pages swap cached

And now we see 83 slab_reclaimable + 846 slab_unreclaimable adds up
correctly to the total of 929.

The patch below will end up with the correct count.

8<===
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 1609b02..8d606bb 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -117,7 +117,7 @@ void show_mem(unsigned int filter)
                        else if (PageSwapCache(page))
                                cached++;
                        else if (PageSlab(page))
-                               slab++;
+                               slab += 1 << compound_order(page);
                        else if (!page_count(page))
                                free++;
                        else

-- 
 Gregory V. Fong >< GPG key: 0BAE9648

  reply	other threads:[~2015-04-13  1:09 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-04 23:22 [PATCH] ARM: print cma-reserved pages from show_mem Gregory Fong
2015-02-06  0:41 ` Laura Abbott
2015-02-06 21:14   ` Gregory Fong
2015-02-06 21:41     ` Laura Abbott
2015-02-09 19:55       ` Gregory Fong
2015-02-10 11:32         ` Russell King - ARM Linux
2015-03-23  9:08           ` Gregory Fong
2015-03-25 11:49             ` Mel Gorman
2015-03-26 11:46             ` Russell King - ARM Linux
2015-03-26 12:30               ` Mel Gorman
2015-03-26 13:22                 ` Russell King - ARM Linux
2015-03-26 13:47                   ` Mel Gorman
2015-04-10  4:36                 ` Gregory Fong
2015-04-10  5:18                   ` Wang, Yalin
2015-04-10 11:24                     ` Russell King - ARM Linux
2015-04-13  1:09                       ` Gregory Fong [this message]
2015-04-13  1:21                         ` Gregory Fong
2015-04-13  9:56                           ` Russell King - ARM Linux
2015-04-13 10:04                             ` Mel Gorman
2015-04-13 10:05                               ` Russell King - ARM Linux
2015-04-13 12:29                                 ` Gregory Fong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150413010913.GA15225@corellia.local \
    --to=gregory.0xf0@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).