Messages in this thread | | | Subject | Re: [PATCH 07/15] kmemleak: Add memleak_alloc callback from alloc_large_system_hash | From | Catalin Marinas <> | Date | Thu, 11 Dec 2008 09:50:52 +0000 |
| |
On Wed, 2008-12-10 at 11:04 -0800, Dave Hansen wrote: > On Wed, 2008-12-10 at 18:27 +0000, Catalin Marinas wrote: > > > > @@ -4570,6 +4571,8 @@ void *__init alloc_large_system_hash(const char *tablename, > > if (_hash_mask) > > *_hash_mask = (1 << log2qty) - 1; > > > > + memleak_alloc(table, size, 1, GFP_ATOMIC); > > + > > return table; > > } > > Why is this sucker GFP_ATOMIC?
It could be GFP_KERNEL, it don't think it really matter at this point.
> Since alloc_large_system_hash() is using bootmem (and is called early), > I'm a little surprised that it is OK to call into memleak_alloc() which > uses kmem_cache_alloc(). Is the slab even set up at this point?
It doesn't need to be. Early callbacks like this are logged by kmemleak in a buffer and properly registered once the slab allocator is fully initialised (slab initialisation needs to allocate some memory for itself as well).
-- Catalin
| |