> Can you please use readprofile to find out where kswapd is spending its
> time when you reach 4G of pagecache ?
> 
> I've never seen kswapd burn CPU time except cases where a lot of memory is
> anonymous and there is a need for lots of swap space allocations.
> (scan_swap_map() is where kswapd spends "all" of its time in such
> workloads)
I was doing a run with 512M lowmem and 2.5G highmem and found this:
__alloc_pages: 1-order allocation failed.
__alloc_pages: 1-order allocation failed.
__alloc_pages: 1-order allocation failed.
# cat /proc/meminfo 
        total:    used:    free:  shared: buffers:  cached:
Mem:  3077513216 3067564032  9949184        0 13807616 2311172096
Swap: 2098176000        0 2098176000
MemTotal:      3005384 kB
MemFree:          9716 kB
MemShared:           0 kB
Buffers:         13484 kB
Cached:        2257004 kB
SwapCached:          0 kB
Active:         888916 kB
Inact_dirty:   1335552 kB
Inact_clean:     46020 kB
Inact_target:      316 kB
HighTotal:     2621440 kB
HighFree:         7528 kB
LowTotal:       383944 kB
LowFree:          2188 kB
SwapTotal:     2049000 kB
SwapFree:      2049000 kB
# readprofile | sort -nr | less
11967239 total                                      7.3285
7417874 idled                                    45230.9390
363813 do_page_launder                          119.3612
236764 ppc_irq_dispatch_handler                 332.5337
I can split out the do_page_launder usage if you want. I had a quick look
at the raw profile information and it appears that we are just looping a
lot.
Paulus and I moved the ppc32 kernel to load at 2G so we have 1.75G of
lowmem. This has stopped the kswapd problem, but I thought the above
information might be useful to you anyway.
Anton
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/