On Wed, Jul 08, 2009 at 01:15:15PM +0800, Wu Fengguang wrote: > On Tue, Jul 07, 2009 at 11:42:07PM -0400, Gene Heskett wrote: > > On Tuesday 07 July 2009, Wu Fengguang wrote: > > >On Tue, Jul 07, 2009 at 10:57:30PM +0800, Gene Heskett wrote: > > >> On Tuesday 07 July 2009, Wu Fengguang wrote: > > >> >On Mon, Jul 06, 2009 at 10:56:00AM -0400, Gene Heskett wrote: > > >> >> Greetings all; > > [...] > > >> > > > >> >Normal zone is absent in the above lines. > > >> > > >> Is this a .config issue? > > > > > >At least CONFIG_HIGHMEM64G is not necessary, could try disabling it. > > > > I have in a rebuild of this 2.6.30.1 kernel, but ISTR I enabled that because > > it was only using 3G of the 4G of ram in this box, an AMD-64 Phenom, 4 cores, > > 4G ram. But I haven't rebooted to it yet. Next good excuse. See below... :) > > I guess you can only use 3G ram because there is a big memory hole. > Your HighMem zone spanned 951810 pages, 813013 of which is present. > So it's not quite accurate for the OOM message "951810 pages HighMem" > to report the spanned pages. > > Your Normal zone has 221994 present pages, while the OOM message shows > "slab:206505", which indicates that the OOM is caused by too much > slab pages(they cannot be allocated from HighMem zone). > > I guess your near 800MB slab cache is somehow under scanned. Gene, can you run .31 with this patch? When OOM happens, it will tell us whether the majority slab pages are reclaimable. Another way to find things out is to run `slabtop` when your system is moderately loaded. Thanks, Fengguang --- From: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> Subject: [PATCH] add per-zone statistics to show_free_areas() Currently, show_free_area() mainly display system memory usage. but it doesn't display per-zone memory usage information. However, if DMA zone OOM occur, Administrator definitely need to know per-zone memory usage information. Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> --- mm/page_alloc.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) Index: b/mm/page_alloc.c =================================================================== --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -2151,6 +2151,16 @@ void show_free_areas(void) " inactive_file:%lukB" " unevictable:%lukB" " present:%lukB" + " mlocked:%lukB" + " dirty:%lukB" + " writeback:%lukB" + " mapped:%lukB" + " slab_reclaimable:%lukB" + " slab_unreclaimable:%lukB" + " pagetables:%lukB" + " unstable:%lukB" + " bounce:%lukB" + " writeback_tmp:%lukB" " pages_scanned:%lu" " all_unreclaimable? %s" "\n", @@ -2165,6 +2175,16 @@ void show_free_areas(void) K(zone_page_state(zone, NR_INACTIVE_FILE)), K(zone_page_state(zone, NR_UNEVICTABLE)), K(zone->present_pages), + K(zone_page_state(zone, NR_MLOCK)), + K(zone_page_state(zone, NR_FILE_DIRTY)), + K(zone_page_state(zone, NR_WRITEBACK)), + K(zone_page_state(zone, NR_FILE_MAPPED)), + K(zone_page_state(zone, NR_SLAB_RECLAIMABLE)), + K(zone_page_state(zone, NR_SLAB_UNRECLAIMABLE)), + K(zone_page_state(zone, NR_PAGETABLE)), + K(zone_page_state(zone, NR_UNSTABLE_NFS)), + K(zone_page_state(zone, NR_BOUNCE)), + K(zone_page_state(zone, NR_WRITEBACK_TEMP)), zone->pages_scanned, (zone_is_all_unreclaimable(zone) ? "yes" : "no") ); -- To unsubscribe from this list: send the line "unsubscribe kernel-testers" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html