From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sat, 16 Jun 2007 00:36:10 +0900 From: KAMEZAWA Hiroyuki Subject: Re: [RFC] memory unplug v5 [1/6] migration by kernel Message-Id: <20070616003610.2acbcbc8.kamezawa.hiroyu@jp.fujitsu.com> In-Reply-To: References: <20070614155630.04f8170c.kamezawa.hiroyu@jp.fujitsu.com> <20070614155929.2be37edb.kamezawa.hiroyu@jp.fujitsu.com> <20070614161146.5415f493.kamezawa.hiroyu@jp.fujitsu.com> <20070614164128.42882f74.kamezawa.hiroyu@jp.fujitsu.com> <20070614172936.12b94ad7.kamezawa.hiroyu@jp.fujitsu.com> <20070615010217.62908da3.kamezawa.hiroyu@jp.fujitsu.com> <20070615011536.beaa79c1.kamezawa.hiroyu@jp.fujitsu.com> <46718320.1010500@csn.ul.ie> <20070615073125.f5e4d6e2.kamezawa.hiroyu@jp.fujitsu.com> <20070615184308.d59a9c11.kamezawa.hiroyu@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org Return-Path: To: Christoph Lameter Cc: mel@csn.ul.ie, linux-mm@kvack.org, y-goto@jp.fujitsu.com, hugh@veritas.com List-ID: On Fri, 15 Jun 2007 07:41:42 -0700 (PDT) Christoph Lameter wrote: > On Fri, 15 Jun 2007, KAMEZAWA Hiroyuki wrote: > > > /* > > - * Establish migration ptes or remove ptes > > + * This is a corner case handling. > > + * When a new swap-ache is read into, it is linked to LRU > > + * and treated as swapcache but has no rmap yet. > > + * Calling try_to_unmap() against a page->mapping==NULL page is > > + * BUG. So handle it here. > > + */ > > + if (!page->mapping) > > + goto unlock; > > + /* > > + * By try_to_unmap(), page->mapcount goes down to 0 here. In this case, > > + * we cannot notice that anon_vma is freed while we migrates a pages > > + * This rcu_read_lock() delays freeing anon_vma pointer until the end > > + * of migration. File cache pages are no problem because of page_lock() > > */ > > + rcu_read_lock(); > > try_to_unmap(page, 1); > > page->mapping needs to be checked after rcu_read_lock. The mapping may be > removed and the anon_vma dropped after you checked page->mapping. > page->mapping is not clearred when the kernel removing rmap (it will not be cleared even if it is freed in my understanding) ...but your point seems reasonable. I'll fix it. BTW, I'll not able to touch my box until next Friday. Regards, -Kame -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org