Re: [Bug #14141] order 2 page allocation failures in iwlagn

David Rientjes
2009-10-06T09:15:42Z

On Tue, 6 Oct 2009, Mel Gorman wrote:

> > > And the winner is:
> > > 2ff05b2b4eac2e63d345fc731ea151a060247f53 is first bad commit
> > > commit 2ff05b2b4eac2e63d345fc731ea151a060247f53
> > > Author: David Rientjes <rientjes@google.com>
> > > Date: Tue Jun 16 15:32:56 2009 -0700
> > >
> > > oom: move oom_adj value from task_struct to mm_struct
> > >
> > > I'm confident that the bisection is good. The test case was very reliable
> > > while zooming in on the merge from akpm.
> > >
> >
> > I doubt it for two reasons: (i) this commit was reverted in 0753ba0 since
> > 2.6.31-rc7 and is no longer in the kernel, and (ii) these are GFP_ATOMIC
> > allocations which would be unaffected by oom killer scores.
> >
>
> However, the problem was reported to start showing up in 2.6.31-rc1 so
> while it might not be *the* patch, it might be making the type of change
> that caused more fragmentation. This patch adjusted the size of
> mm_struct and maybe it was enough to change the "order" required for the
> slab. Maybe there are other slabs that have changed size as well in that
> timeframe.
>
> Frans, what is the size of mm_struct before and after this patch was
> applied? Find it with either
>
> grep mm_struct /proc/slabinfo
>
> and if the information is not available there, try
>
> cat /sys/kernel/slab/mm_struct/slab_size and
> /sys/kernel/slab/mm_struct/order
>

If that's the case and the problem still persists in 2.6.31-rc7 as
reported, then you'd need to compare the current slab order for both
mm_struct and signal_struct to the previously known working kernel
since the latter is where oom_adj was moved. (You'd still have to check
the former to see if there were any mm_struct additions between rc1 and
rc7 between the commit and revert, though.)