* Re: [PATCH] slab: fix generic PAGE_POISONING conflict with SLAB_RED_ZONE [not found] <20090521192822.GB4448@homer.shelbyville.oz> @ 2009-05-22 8:02 ` Pekka Enberg 2009-05-22 8:50 ` [PATCH] slab: add missing guard for kernel_map_pages() use Ron 0 siblings, 1 reply; 3+ messages in thread From: Pekka Enberg @ 2009-05-22 8:02 UTC (permalink / raw) To: Ron; +Cc: cl, mpm, linux-mm, akinobu.mita, linux-kernel On Fri, 2009-05-22 at 04:58 +0930, Ron wrote: > A generic page poisoning mechanism was added with commit: > 6a11f75b6a17b5d9ac5025f8d048382fd1f47377 > which destructively poisons full pages with a bitpattern. > > On arches where PAGE_POISONING is used, this conflicts with the slab > redzone checking enabled by DEBUG_SLAB, scribbling bits all over its > magic words and making it complain about that quite emphatically. > > On x86 (and I presume at present all the other arches which set > ARCH_SUPPORTS_DEBUG_PAGEALLOC too), the kernel_map_pages() operation > is non destructive so it can coexist with the other DEBUG_SLAB > mechanisms just fine. > > This patch favours the expensive full page destruction test for > cases where there is a collision and it is explicitly selected. > > Signed-off-by: Ron Lee <ron@debian.org> Applied, thanks! Pekka ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] slab: add missing guard for kernel_map_pages() use 2009-05-22 8:02 ` [PATCH] slab: fix generic PAGE_POISONING conflict with SLAB_RED_ZONE Pekka Enberg @ 2009-05-22 8:50 ` Ron 2009-05-22 10:17 ` Ron 0 siblings, 1 reply; 3+ messages in thread From: Ron @ 2009-05-22 8:50 UTC (permalink / raw) To: Pekka Enberg; +Cc: cl, mpm, linux-mm, akinobu.mita, linux-kernel All other uses of kernel_map_pages() are explicitly excluded without CONFIG_DEBUG_PAGEALLOC, this one should be too. Signed-off-by: Ron Lee <ron@debian.org> diff --git a/mm/slab.c b/mm/slab.c index 9a90b00..b5e5b27 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -2674,10 +2683,12 @@ static void cache_init_objs(struct kmem_cache *cachep, slab_error(cachep, "constructor overwrote the" " start of an object"); } +#ifdef CONFIG_DEBUG_PAGEALLOC if ((cachep->buffer_size % PAGE_SIZE) == 0 && OFF_SLAB(cachep) && cachep->flags & SLAB_POISON) kernel_map_pages(virt_to_page(objp), cachep->buffer_size / PAGE_SIZE, 0); +#endif #else if (cachep->ctor) cachep->ctor(objp); ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] slab: add missing guard for kernel_map_pages() use 2009-05-22 8:50 ` [PATCH] slab: add missing guard for kernel_map_pages() use Ron @ 2009-05-22 10:17 ` Ron 0 siblings, 0 replies; 3+ messages in thread From: Ron @ 2009-05-22 10:17 UTC (permalink / raw) To: Pekka Enberg; +Cc: cl, mpm, linux-mm, akinobu.mita, linux-kernel On Fri, May 22, 2009 at 06:20:40PM +0930, Ron wrote: > > All other uses of kernel_map_pages() are explicitly excluded without > CONFIG_DEBUG_PAGEALLOC, this one should be too. > > Signed-off-by: Ron Lee <ron@debian.org> > > > diff --git a/mm/slab.c b/mm/slab.c > index 9a90b00..b5e5b27 100644 > --- a/mm/slab.c > +++ b/mm/slab.c > @@ -2674,10 +2683,12 @@ static void cache_init_objs(struct kmem_cache *cachep, > slab_error(cachep, "constructor overwrote the" > " start of an object"); > } > +#ifdef CONFIG_DEBUG_PAGEALLOC > if ((cachep->buffer_size % PAGE_SIZE) == 0 && > OFF_SLAB(cachep) && cachep->flags & SLAB_POISON) > kernel_map_pages(virt_to_page(objp), > cachep->buffer_size / PAGE_SIZE, 0); > +#endif > #else > if (cachep->ctor) > cachep->ctor(objp); Actually, no. I'm wrong on this one. The compiler will already take that one away because kernel_map_pages() is an empty function in that case. It's subtle, but this extra guard actually adds nothing (unless you consider more #ifdefs to be 'clarifying'); Sorry for the extra noise, Ron ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-05-22 10:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20090521192822.GB4448@homer.shelbyville.oz>
2009-05-22 8:02 ` [PATCH] slab: fix generic PAGE_POISONING conflict with SLAB_RED_ZONE Pekka Enberg
2009-05-22 8:50 ` [PATCH] slab: add missing guard for kernel_map_pages() use Ron
2009-05-22 10:17 ` Ron
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®