Hi KOSAKI, On Wed, Sep 1, 2010 at 9:31 AM, KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> wrote: > M. Vefa Bicakci reported 2.6.35 kernel hang up when hibernation on his > 32bit 3GB mem machine. (https://bugzilla.kernel.org/show_bug.cgi?id=16771) > Also he was bisected first bad commit is below > > commit bb21c7ce18eff8e6e7877ca1d06c6db719376e3c > Author: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> > Date: Fri Jun 4 14:15:05 2010 -0700 > > vmscan: fix do_try_to_free_pages() return value when priority==0 reclaim failure > > At first impression, this seemed very strange because the above commit only > chenged function return value and hibernate_preallocate_memory() ignore > return value of shrink_all_memory(). But it's related. > > Now, page allocation from hibernation code may enter infinite loop if > the system has highmem. > > The reasons are two. 1) hibernate_preallocate_memory() call > alloc_pages() wrong order 2) vmscan don't care enough OOM case when > oom_killer_disabled. > > This patch only fix (2). Why is oom_killer_disabled so special? > because when hibernation case, zone->all_unreclaimable never be turned on