From: Wu Fengguang <fengguang.wu@intel.com>
To: Pierre Ossman <drzeus@drzeus.cx>
Cc: Andrew Morton <akpm@linux-foundation.org>,
bugme-daemon@bugzilla.kernel.org, linux-mm@kvack.org
Subject: Re: [Bug 12832] New: kernel leaks a lot of memory
Date: Mon, 9 Mar 2009 22:22:41 +0800 [thread overview]
Message-ID: <20090309142241.GA4437@localhost> (raw)
In-Reply-To: <20090309084045.2c652fbf@mjolnir.ossman.eu>
Hi Pierre,
On Mon, Mar 09, 2009 at 08:40:45AM +0100, Pierre Ossman wrote:
> On Mon, 9 Mar 2009 10:07:01 +0800
> Wu Fengguang <fengguang.wu@intel.com> wrote:
>
> > On Mon, Mar 09, 2009 at 09:37:42AM +0800, Wu Fengguang wrote:
> > >
> > > The "free" pages in sysrq mem-info report should be equal to "MemFree"
> > > in /proc/meminfo. So I'd expect meminfo numbers to be different in
> > > .26/.27 as well.
> > >
> > > Maybe the memory is taken by some user space program, so it would be
> > > helpful to know the numbers in /proc/meminfo, /proc/vmstat and
> > > /proc/zoneinfo.
> >
> > And maybe piggyback /proc/slabinfo in case it is a kernel bug :-)
> >
>
> Big dump of relevant /proc files:
Thanks for the data! Now it seems that some pages are totally missing
from bootmem or slabs or page cache or any application consumptions...
Will searching through /proc/kpageflags for reserved pages help
identify the problem?
Oh kpageflags_read() does not include support for PG_reserved:
#define KPF_LOCKED 0
#define KPF_ERROR 1
#define KPF_REFERENCED 2
#define KPF_UPTODATE 3
#define KPF_DIRTY 4
#define KPF_LRU 5
#define KPF_ACTIVE 6
#define KPF_SLAB 7
#define KPF_WRITEBACK 8
#define KPF_RECLAIM 9
#define KPF_BUDDY 10
Thanks,
Fengguang
> [root@builder ~]# free
> total used free shared buffers cached
> Mem: 509108 236988 272120 0 228 14760
> -/+ buffers/cache: 222000 287108
> Swap: 524280 228 524052
>
> [root@builder ~]# cat /proc/meminfo
> MemTotal: 509108 kB
> MemFree: 272172 kB
> Buffers: 240 kB
> Cached: 14788 kB
> SwapCached: 64 kB
> Active: 32544 kB
> Inactive: 5900 kB
> SwapTotal: 524280 kB
> SwapFree: 524052 kB
> Dirty: 5980 kB
> Writeback: 0 kB
> AnonPages: 23404 kB
> Mapped: 8648 kB
> Slab: 23148 kB
> SReclaimable: 5420 kB
> SUnreclaim: 17728 kB
> PageTables: 3324 kB
> NFS_Unstable: 0 kB
> Bounce: 0 kB
> WritebackTmp: 0 kB
> CommitLimit: 778832 kB
> Committed_AS: 85196 kB
> VmallocTotal: 34359738367 kB
> VmallocUsed: 1740 kB
> VmallocChunk: 34359736619 kB
> HugePages_Total: 0
> HugePages_Free: 0
> HugePages_Rsvd: 0
> HugePages_Surp: 0
> Hugepagesize: 2048 kB
> DirectMap4k: 2032
> DirectMap2M: 18446744073709551613
This field looks weird.
> DirectMap1G: 0
>
> [root@builder ~]# cat /proc/vmstat
> nr_free_pages 68035
> nr_inactive 1479
> nr_active 8137
> nr_anon_pages 5851
> nr_mapped 2162
> nr_file_pages 3777
> nr_dirty 132
> nr_writeback 0
> nr_slab_reclaimable 1354
> nr_slab_unreclaimable 4440
> nr_page_table_pages 831
> nr_unstable 0
> nr_bounce 0
> nr_vmscan_write 324
> nr_writeback_temp 0
> numa_hit 18985527
> numa_miss 0
> numa_foreign 0
> numa_interleave 44220
> numa_local 18985527
> numa_other 0
> pgpgin 379025
> pgpgout 820238
> pswpin 16
> pswpout 57
> pgalloc_dma 295454
> pgalloc_dma32 18721928
> pgalloc_normal 0
> pgalloc_movable 0
> pgfree 19085491
> pgactivate 60797
> pgdeactivate 47199
> pgfault 25624481
> pgmajfault 2490
> pgrefill_dma 8144
> pgrefill_dma32 103508
> pgrefill_normal 0
> pgrefill_movable 0
> pgsteal_dma 4503
> pgsteal_dma32 179395
> pgsteal_normal 0
> pgsteal_movable 0
> pgscan_kswapd_dma 4999
> pgscan_kswapd_dma32 180546
> pgscan_kswapd_normal 0
> pgscan_kswapd_movable 0
> pgscan_direct_dma 0
> pgscan_direct_dma32 384
> pgscan_direct_normal 0
> pgscan_direct_movable 0
> pginodesteal 0
> slabs_scanned 153856
> kswapd_steal 183628
> kswapd_inodesteal 35303
> pageoutrun 3794
> allocstall 3
> pgrotated 72
> htlb_buddy_alloc_success 0
> htlb_buddy_alloc_fail 0
>
> [root@builder ~]# cat /proc/zoneinfo
> Node 0, zone DMA
> pages free 2524
> min 12
> low 15
> high 18
> scanned 0 (a: 27 i: 24)
> spanned 4096
> present 2180
> nr_free_pages 2524
> nr_inactive 0
> nr_active 8
> nr_anon_pages 8
> nr_mapped 0
> nr_file_pages 0
> nr_dirty 0
> nr_writeback 0
> nr_slab_reclaimable 16
> nr_slab_unreclaimable 7
> nr_page_table_pages 15
> nr_unstable 0
> nr_bounce 0
> nr_vmscan_write 292
> nr_writeback_temp 0
> numa_hit 295370
> numa_miss 0
> numa_foreign 0
> numa_interleave 0
> numa_local 295370
> numa_other 0
> protection: (0, 489, 489, 489)
> pagesets
> cpu: 0
> count: 0
> high: 0
> batch: 1
> vm stats threshold: 2
> all_unreclaimable: 0
> prev_priority: 12
> start_pfn: 0
> Node 0, zone DMA32
> pages free 65515
> min 700
> low 875
> high 1050
> scanned 0 (a: 0 i: 0)
> spanned 126960
> present 125224
> nr_free_pages 65515
> nr_inactive 1482
> nr_active 8137
> nr_anon_pages 5843
> nr_mapped 2162
> nr_file_pages 3789
> nr_dirty 128
> nr_writeback 0
> nr_slab_reclaimable 1331
> nr_slab_unreclaimable 4429
> nr_page_table_pages 816
> nr_unstable 0
> nr_bounce 0
> nr_vmscan_write 32
> nr_writeback_temp 0
> numa_hit 18690260
> numa_miss 0
> numa_foreign 0
> numa_interleave 44220
> numa_local 18690260
> numa_other 0
> protection: (0, 0, 0, 0)
> pagesets
> cpu: 0
> count: 69
> high: 186
> batch: 31
> vm stats threshold: 6
> all_unreclaimable: 0
> prev_priority: 12
> start_pfn: 4096
>
> [root@builder ~]# cat /proc/slabinfo
> slabinfo - version: 2.1
> # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
> rpc_inode_cache 39 39 832 39 8 : tunables 0 0 0 : slabdata 1 1 0
> nf_conntrack_expect 0 0 240 34 2 : tunables 0 0 0 : slabdata 0 0 0
> UDPv6 34 34 960 34 8 : tunables 0 0 0 : slabdata 1 1 0
> TCPv6 18 18 1792 18 8 : tunables 0 0 0 : slabdata 1 1 0
> kmalloc_dma-512 32 32 512 32 4 : tunables 0 0 0 : slabdata 1 1 0
> dm_snap_pending_exception 144 144 112 36 1 : tunables 0 0 0 : slabdata 4 4 0
> kcopyd_job 0 0 360 45 4 : tunables 0 0 0 : slabdata 0 0 0
> dm_uevent 0 0 2608 12 8 : tunables 0 0 0 : slabdata 0 0 0
> ext3_inode_cache 387 1554 768 42 8 : tunables 0 0 0 : slabdata 37 37 0
> ext3_xattr 46 46 88 46 1 : tunables 0 0 0 : slabdata 1 1 0
> journal_handle 170 170 24 170 1 : tunables 0 0 0 : slabdata 1 1 0
> journal_head 42 42 96 42 1 : tunables 0 0 0 : slabdata 1 1 0
> revoke_table 256 256 16 256 1 : tunables 0 0 0 : slabdata 1 1 0
> revoke_record 128 128 32 128 1 : tunables 0 0 0 : slabdata 1 1 0
> cfq_io_context 44 48 168 24 1 : tunables 0 0 0 : slabdata 2 2 0
> mqueue_inode_cache 36 36 896 36 8 : tunables 0 0 0 : slabdata 1 1 0
> isofs_inode_cache 0 0 616 26 4 : tunables 0 0 0 : slabdata 0 0 0
> hugetlbfs_inode_cache 28 28 584 28 4 : tunables 0 0 0 : slabdata 1 1 0
> dquot 0 0 256 32 2 : tunables 0 0 0 : slabdata 0 0 0
> inotify_event_cache 612 612 40 102 1 : tunables 0 0 0 : slabdata 6 6 0
> fasync_cache 313798 313820 24 170 1 : tunables 0 0 0 : slabdata 1846 1846 0
> shmem_inode_cache 735 738 792 41 8 : tunables 0 0 0 : slabdata 18 18 0
> pid_namespace 0 0 2104 15 8 : tunables 0 0 0 : slabdata 0 0 0
> nsproxy 0 0 56 73 1 : tunables 0 0 0 : slabdata 0 0 0
> UNIX 92 92 704 46 8 : tunables 0 0 0 : slabdata 2 2 0
> xfrm_dst_cache 0 0 384 42 4 : tunables 0 0 0 : slabdata 0 0 0
> ip_dst_cache 51 75 320 25 2 : tunables 0 0 0 : slabdata 3 3 0
> TCP 19 19 1664 19 8 : tunables 0 0 0 : slabdata 1 1 0
> blkdev_integrity 0 0 120 34 1 : tunables 0 0 0 : slabdata 0 0 0
> blkdev_queue 34 34 1824 17 8 : tunables 0 0 0 : slabdata 2 2 0
> blkdev_requests 38 52 304 26 2 : tunables 0 0 0 : slabdata 2 2 0
> sock_inode_cache 138 138 704 46 8 : tunables 0 0 0 : slabdata 3 3 0
> file_lock_cache 42 42 192 42 2 : tunables 0 0 0 : slabdata 1 1 0
> taskstats 26 26 312 26 2 : tunables 0 0 0 : slabdata 1 1 0
> proc_inode_cache 90 162 600 27 4 : tunables 0 0 0 : slabdata 6 6 0
> sigqueue 25 25 160 25 1 : tunables 0 0 0 : slabdata 1 1 0
> radix_tree_node 623 2581 560 29 4 : tunables 0 0 0 : slabdata 89 89 0
> bdev_cache 42 42 768 42 8 : tunables 0 0 0 : slabdata 1 1 0
> sysfs_dir_cache 7084 7089 80 51 1 : tunables 0 0 0 : slabdata 139 139 0
> inode_cache 1505 1708 568 28 4 : tunables 0 0 0 : slabdata 61 61 0
> dentry 2555 4485 208 39 2 : tunables 0 0 0 : slabdata 115 115 0
> avc_node 1735 2128 72 56 1 : tunables 0 0 0 : slabdata 38 38 0
> buffer_head 1583 5472 112 36 1 : tunables 0 0 0 : slabdata 152 152 0
> mm_struct 75 78 832 39 8 : tunables 0 0 0 : slabdata 2 2 0
> vm_area_struct 2223 2438 176 46 2 : tunables 0 0 0 : slabdata 53 53 0
> files_cache 78 84 768 42 8 : tunables 0 0 0 : slabdata 2 2 0
> signal_cache 105 108 896 36 8 : tunables 0 0 0 : slabdata 3 3 0
> sighand_cache 85 90 2112 15 8 : tunables 0 0 0 : slabdata 6 6 0
> task_struct 141 145 5840 5 8 : tunables 0 0 0 : slabdata 29 29 0
> anon_vma 741 768 32 128 1 : tunables 0 0 0 : slabdata 6 6 0
> shared_policy_node 85 85 48 85 1 : tunables 0 0 0 : slabdata 1 1 0
> numa_policy 56 60 136 30 1 : tunables 0 0 0 : slabdata 2 2 0
> idr_layer_cache 269 270 536 30 4 : tunables 0 0 0 : slabdata 9 9 0
> kmalloc-4096 247 248 4096 8 8 : tunables 0 0 0 : slabdata 31 31 0
> kmalloc-2048 345 352 2048 16 8 : tunables 0 0 0 : slabdata 22 22 0
> kmalloc-1024 396 416 1024 32 8 : tunables 0 0 0 : slabdata 13 13 0
> kmalloc-512 297 320 512 32 4 : tunables 0 0 0 : slabdata 10 10 0
> kmalloc-256 985 992 256 32 2 : tunables 0 0 0 : slabdata 31 31 0
> kmalloc-128 1899 2016 128 32 1 : tunables 0 0 0 : slabdata 63 63 0
> kmalloc-64 6795 9600 64 64 1 : tunables 0 0 0 : slabdata 150 150 0
> kmalloc-32 20735 20736 32 128 1 : tunables 0 0 0 : slabdata 162 162 0
> kmalloc-16 138778 139264 16 256 1 : tunables 0 0 0 : slabdata 544 544 0
> kmalloc-8 8190 8192 8 512 1 : tunables 0 0 0 : slabdata 16 16 0
> kmalloc-192 972 1050 192 42 2 : tunables 0 0 0 : slabdata 25 25 0
> kmalloc-96 2815 2856 96 42 1 : tunables 0 0 0 : slabdata 68 68 0
> kmem_cache_node 0 0 64 64 1 : tunables 0 0 0 : slabdata 0 0 0
>
> --
> -- Pierre Ossman
>
> WARNING: This correspondence is being monitored by the
> Swedish government. Make sure your server uses encryption
> for SMTP traffic and consider using PGP for end-to-end
> encryption.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2009-03-09 14:23 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bug-12832-27@http.bugzilla.kernel.org/>
2009-03-07 20:24 ` [Bug 12832] New: kernel leaks a lot of memory Andrew Morton
2009-03-07 21:00 ` Pierre Ossman
2009-03-07 22:13 ` Andrew Morton
2009-03-07 22:53 ` Pierre Ossman
2009-03-08 10:00 ` Pierre Ossman
2009-03-08 10:36 ` Pierre Ossman
2009-03-08 12:38 ` Wu Fengguang
2009-03-08 14:26 ` Pierre Ossman
2009-03-08 15:54 ` Pierre Ossman
2009-03-08 19:11 ` Andrew Morton
2009-03-08 19:23 ` Pierre Ossman
2009-03-07 22:16 ` Andrew Morton
2009-03-09 1:37 ` Wu Fengguang
[not found] ` <20090309020701.GA381@localhost>
2009-03-09 7:40 ` Pierre Ossman
2009-03-09 14:22 ` Wu Fengguang [this message]
2009-03-09 15:02 ` Pierre Ossman
2009-03-10 2:41 ` Wu Fengguang
2009-03-10 6:56 ` Pierre Ossman
2009-03-10 8:19 ` Wu Fengguang
2009-03-10 9:55 ` Pierre Ossman
2009-03-10 12:22 ` Wu Fengguang
2009-03-10 13:11 ` Wu Fengguang
2009-03-10 15:52 ` Pierre Ossman
2009-03-10 20:21 ` Pierre Ossman
2009-03-11 1:37 ` Wu Fengguang
[not found] ` <20090311075703.35de2488@mjolnir.ossman.eu>
2009-03-11 7:14 ` Wu Fengguang
2009-03-11 7:26 ` Pierre Ossman
2009-03-11 7:36 ` Wu Fengguang
2009-03-11 7:57 ` Pierre Ossman
2009-03-11 8:20 ` Wu Fengguang
2009-03-11 13:05 ` Pierre Ossman
2009-03-11 13:00 ` Wu Fengguang
2009-03-11 15:02 ` Pierre Ossman
2009-03-11 15:47 ` Steven Rostedt
2009-03-11 16:46 ` Pierre Ossman
2009-03-11 21:43 ` Pierre Ossman
2009-03-12 6:50 ` Pierre Ossman
2009-03-12 1:08 ` Wu Fengguang
2009-03-12 6:55 ` Pierre Ossman
2009-03-12 7:29 ` Wu Fengguang
2009-03-11 14:25 ` Steven Rostedt
2009-03-11 14:35 ` Pierre Ossman
2009-03-11 16:55 ` Pierre Ossman
2009-03-11 17:28 ` Steven Rostedt
2009-03-11 18:33 ` Pierre Ossman
2009-03-11 18:48 ` Steven Rostedt
2009-03-11 18:56 ` Pierre Ossman
2009-03-11 19:03 ` Steven Rostedt
2009-03-12 2:46 ` KOSAKI Motohiro
2009-03-12 6:53 ` Pierre Ossman
2009-03-10 19:58 ` Pierre Ossman
2009-03-11 0:19 ` KOSAKI Motohiro
2009-03-11 7:22 ` Pierre Ossman
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=20090309142241.GA4437@localhost \
--to=fengguang.wu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=bugme-daemon@bugzilla.kernel.org \
--cc=drzeus@drzeus.cx \
--cc=linux-mm@kvack.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.