On 1/17/08, KOSAKI Motohiro <[EMAIL PROTECTED]> wrote: > Hi Daniel > > > > Thank you for good point out! > > > Could you please post your test program and reproduced method? > > > > Sure: > > > > 1. Fill almost all available memory with page cache in a system without > > swap. > > 2. Run attached alloc-test program. > > 3. Notification fires when page cache is reclaimed. > > Unfortunately, I can't reproduce it. > > my machine > CPU: Pentium4 2.8GHz with HT > memory: 512M > > > 1. I doubt ZONE_DMA, please shipment ignore zone_dma patch(below). > 2. Could you please send your .config and /etc/sysctl.conf? > I hope more reproduce challenge. > > thanks. > > - kosaki > > > > > Signed-off-by: KOSAKI Motohiro <[EMAIL PROTECTED]> > > --- > include/linux/mem_notify.h | 3 +++ > mm/page_alloc.c | 6 +++++- > 2 files changed, 8 insertions(+), 1 deletion(-) > > Index: linux-2.6.24-rc6-mm1-memnotify/include/linux/mem_notify.h > =================================================================== > --- linux-2.6.24-rc6-mm1-memnotify.orig/include/linux/mem_notify.h > 2008-01-16 21:31:09.000000000 +0900 > +++ linux-2.6.24-rc6-mm1-memnotify/include/linux/mem_notify.h > 2008-01-16 21:34:24.000000000 +0900 > @@ -22,6 +22,9 @@ static inline void memory_pressure_notif > unsigned long target; > unsigned long pages_high, pages_free, pages_reserve; > > + if (unlikely(zone->mem_notify_status == -1)) > + return; > + > if (pressure) { > target = atomic_long_read(&last_mem_notify) + MEM_NOTIFY_FREQ; > if (likely(time_before(jiffies, target))) > Index: linux-2.6.24-rc6-mm1-memnotify/mm/page_alloc.c > =================================================================== > --- linux-2.6.24-rc6-mm1-memnotify.orig/mm/page_alloc.c 2008-01-13 > 19:50:27.000000000 +0900 > +++ linux-2.6.24-rc6-mm1-memnotify/mm/page_alloc.c 2008-01-16 > 21:41:58.000000000 +0900 > @@ -3467,7 +3467,11 @@ static void __meminit free_area_init_cor > zone->zone_pgdat = pgdat; > > zone->prev_priority = DEF_PRIORITY; > - zone->mem_notify_status = 0; > + > + if (zone->present_pages < (pgdat->node_present_pages / 10)) > + zone->mem_notify_status = -1; > + else > + zone->mem_notify_status = 0; > > zone_pcp_init(zone); > INIT_LIST_HEAD(&zone->active_list);
Your patch above solves the problem I had with early notification. Cheers, Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/