From: Andrew Morton <akpm@osdl.org>
To: Eric Dumazet <dada1@cosmosbay.com>
Cc: bcrl@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH, V2] i386: instead of poisoning .init zone, change protection bits to force a fault
Date: Sun, 5 Feb 2006 11:42:35 -0800 [thread overview]
Message-ID: <20060205114235.318146a5.akpm@osdl.org> (raw)
In-Reply-To: <43E62FF4.3030900@cosmosbay.com>
Eric Dumazet <dada1@cosmosbay.com> wrote:
>
> > --- devel/arch/i386/mm/init.c~i386-instead-of-poisoning-init-zone-change-protection-fix 2006-02-04 14:33:33.000000000 -0800
> > +++ devel-akpm/arch/i386/mm/init.c 2006-02-04 14:34:07.000000000 -0800
> > @@ -751,11 +751,15 @@ void free_init_pages(char *what, unsigne
> > ClearPageReserved(virt_to_page(addr));
> > set_page_count(virt_to_page(addr), 1);
> > #ifdef CONFIG_DEBUG_INITDATA
> > + /*
> > + * Unmap the page, and leak it. So any further accesses will
> > + * oops.
> > + */
> > change_page_attr(virt_to_page(addr), 1, __pgprot(0));
> > #else
> > memset((void *)addr, 0xcc, PAGE_SIZE);
> > -#endif
> > free_page(addr);
> > +#endif
> > totalram_pages++;
> > }
> > printk(KERN_INFO "Freeing %s: %ldk freed\n", what, (end - begin) >> 10);
> > _
> >
> > But is there much point in doing this? Does it offer much more than
> > CONFIG_DEBUG_PAGEALLOC?
> >
> >
>
> 1) CONFIG_DEBUG_PAGEALLOC is very generic (and expensive), while
> CONFIG_DEBUG_INITDATA only makes sure init data becomes unreadable.
>
> 2) If CONFIG_DEBUG_INITDATA is on, the redzone is in action in the virtual
> memory that hold the initdata, while the physical pages that contained the
> initdata where freed and might be reused for other needs.
>
> I think we have two different things here : Virtual mem redzoning (my patch),
> and physical ram poisoning (your patch).
>
> CONFIG_DEBUG_INITDATA uses only a virtual mem redzoning (no underlying memory
> cost, apart of the page tables), while your solution doesnt free the pages,
> and the poisoining wont catch further accesses, just make some results funny
> or false.
>
> The only bad effect of my patch is about the TLB cost, because of the
> hugepage(s) that should revert to 512 normal 4K pages.
Your patch made my kernel oops! The oops was prevented by either enabling
CONFIG_DEBUG_PAGEALLOC or by the above patch.
next prev parent reply other threads:[~2006-02-05 19:43 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-29 6:26 [PATCH] i386: Add a temporary to make put_user more type safe Eric W. Biederman
2006-01-29 6:39 ` Andrew Morton
2006-01-29 6:49 ` Eric W. Biederman
2006-01-29 7:51 ` Andrew Morton
[not found] ` <200601291620.28291.ioe-lkml@rameria.de>
2006-01-29 19:33 ` Andrew Morton
2006-01-29 20:04 ` [PATCH] i386: instead of poisoning .init zone, change protection bits to force a fault Eric Dumazet
2006-01-29 20:05 ` Benjamin LaHaise
2006-01-29 20:28 ` Eric Dumazet
2006-01-29 20:56 ` [PATCH, V2] " Eric Dumazet
2006-01-30 9:03 ` Questions about alloc_large_system_hash() and TLB entries Eric Dumazet
2006-01-30 9:22 ` David S. Miller
2006-01-30 10:22 ` Eric Dumazet
2006-02-04 22:41 ` [PATCH, V2] i386: instead of poisoning .init zone, change protection bits to force a fault Andrew Morton
2006-02-05 17:03 ` Eric Dumazet
2006-02-05 19:42 ` Andrew Morton [this message]
2006-02-06 8:53 ` Eric Dumazet
2006-02-06 9:02 ` Eric Dumazet
2006-02-06 9:28 ` Andrew Morton
2006-02-06 10:07 ` Eric Dumazet
2006-02-06 10:16 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060205114235.318146a5.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=bcrl@kvack.org \
--cc=dada1@cosmosbay.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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®