Re: [PATCH] Fix two potential mem leaks in MPT Fusion(mpt_attach())
From: Andrew Morton
Date: Thu Aug 02 2007 - 01:14:25 EST
On Wed, 1 Aug 2007 21:03:50 -0600 Matthew Wilcox <matthew@xxxxxx> wrote:
> On Wed, Aug 01, 2007 at 05:26:53PM -0700, Andrew Morton wrote:
> > Why on earth is that using GFP_ATOMIC? This function later goes on to
> > create procfs files and such things.
>
> Seems fairly common in driver initialisation code. I removed three
> instances of this in the advansys driver.
hrm. People reach for GFP_ATOMIC so often that it becomes a habit, I guess.
It makes one wonder how much that lovely fault-injection framework is being
used.
> > y'know, we could have a debug option which will spit warnings if someone
> > does a !__GFP_WAIT allocation while !in_atomic() (only works if
> > CONFIG_PREEMPT).
> >
> > But please, make it depend on !CONFIG_AKPM. I shudder to think about all
> > the stuff it would pick up.
>
> Seems like you'd get a lot of false positives.
There would be a few. mempool does a non-__GFP_WAIT allocation
deliberately, for example (I still think that's fishy btw).
But I don't expect there would be a large number of falsies. We could add
a __GFP_I_REALLY_MEANT_ATOMIC flag to shut those up.
> How about a call:
>
> slab_warn_about_atomic_allocs();
>
> right before calling the initcalls, and then
>
> slab_stop_warning_about_atomic_allocs();
>
> after calling them? That should give people a lot to chew on for a few
> months. Obviously, you would need to not warn about allocations from
> interrupt context, as you say above.
Could. But GFP_ATOMIC at initcall-time really isn't a problem (except that
it can probably also happen at modprobe-time).
What is the major concern is needlessly atomic allocations at regular
runtime.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/