Messages in this thread | | | Date | Sat, 21 May 2011 23:31:45 +0900 | Subject | Re: Kernel falls apart under light memory pressure (i.e. linking vmlinux) | From | Minchan Kim <> |
| |
On Sat, May 21, 2011 at 9:04 PM, KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote: >> diff --git a/mm/vmscan.c b/mm/vmscan.c >> index 3f44b81..d1dabc9 100644 >> @@ -1426,8 +1437,13 @@ shrink_inactive_list(unsigned long nr_to_scan, >> struct zone *zone, >> >> /* Check if we should syncronously wait for writeback */ >> if (should_reclaim_stall(nr_taken, nr_reclaimed, priority, sc)) { >> + unsigned long nr_active, old_nr_scanned; >> set_reclaim_mode(priority, sc, true); >> + nr_active = clear_active_flags(&page_list, NULL); >> + count_vm_events(PGDEACTIVATE, nr_active); >> + old_nr_scanned = sc->nr_scanned; >> nr_reclaimed += shrink_page_list(&page_list, zone, sc); >> + sc->nr_scanned = old_nr_scanned; >> } >> >> local_irq_disable(); >> >> I just tested 2.6.38.6 with the attached patch. It survived dirty_ram >> and test_mempressure without any problems other than slowness, but >> when I hit ctrl-c to stop test_mempressure, I got the attached oom. > > Minchan, > > I'm confused now. > If pages got SetPageActive(), should_reclaim_stall() should never return true.
Hi KOSAKI, You're absolutely right. I missed that so the problem should not happen. :(
-- Kind regards, Minchan Kim -- 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/
| |