lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110613091447.GE27130@linux.vnet.ibm.com>
Date:	Mon, 13 Jun 2011 14:44:47 +0530
From:	Srikar Dronamraju <srikar@...ux.vnet.ibm.com>
To:	Peter Zijlstra <peterz@...radead.org>
Cc:	Ingo Molnar <mingo@...e.hu>, Steven Rostedt <rostedt@...dmis.org>,
	Linux-mm <linux-mm@...ck.org>,
	Arnaldo Carvalho de Melo <acme@...radead.org>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
	Hugh Dickins <hughd@...gle.com>,
	Christoph Hellwig <hch@...radead.org>,
	Andi Kleen <andi@...stfloor.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Jonathan Corbet <corbet@....net>,
	Oleg Nesterov <oleg@...hat.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Jim Keniston <jkenisto@...ux.vnet.ibm.com>,
	Roland McGrath <roland@...k.frob.com>,
	Ananth N Mavinakayanahalli <ananth@...ibm.com>,
	LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v4 3.0-rc2-tip 2/22]  2: uprobes: Breakground page
 replacement.

* Peter Zijlstra <peterz@...radead.org> [2011-06-10 01:03:32]:

> On Tue, 2011-06-07 at 18:28 +0530, Srikar Dronamraju wrote:
> > +/**
> > + * __replace_page - replace page in vma by new page.
> > + * based on replace_page in mm/ksm.c
> > + *
> > + * @vma:      vma that holds the pte pointing to page
> > + * @page:     the cowed page we are replacing by kpage
> > + * @kpage:    the modified page we replace page by
> > + *
> > + * Returns 0 on success, -EFAULT on failure.
> > + */
> > +static int __replace_page(struct vm_area_struct *vma, struct page *page,
> > +                                       struct page *kpage)
> 
> This is a verbatim copy of mm/ksm.c:replace_page(), I think I can
> remember why you did this, but the changelog utterly fails to mention
> why we need a second copy of this logic (or anything much at all).
> 

__replace_page is not exactly a copy of replace_page. Its a slightly
modified copy of replace_page. Here are the reasons for having this
modified copy instead of using the replace_page.

replace_page was written specifically for ksm purpose by Hugh Dickins.
Also Hugh said he doesnt like replace_page to be exposed for other uses.
He has plans for further modifying replace_page for ksm specific
purposes which might not be aligned to what we are using.

Further for replace_page, its good enuf to call page_add_anon_rmap()
However for uprobes needs we need to call page_add_new_anon_rmap().
page_add_new_anon_rmap() will add the page to the right lru list.

replace_page needs a reference to orig_pte while __replace_page doesnt
need.

I can add the same to Changelog but I am not sure it makes a good
reading. Hence I had skipped it.

-- 
Thanks and Regards
Srikar
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ