I think the current memory_pressure calculation is broken - at least memory_pressure does not contain the number of pages necessary in the inactive_clean_list to handle 1 second of allocations. * if reclaim_page() finds a page that is Referenced, Dirty or Locked then it must increase memory_pressure. * I don't understand the purpose of the second ++ in alloc_pages(). What about the attached patch [vs. 2.4.5]? It's just an idea, untested. If the behaviour is worse then we must figure out what memory_pressure actually is under the various workloads. AFAICS it has nothing to do with the number of memory allocations per second. Please cc me, I'm not subscribed to linux-mm. -- Manfred