From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail138.messagelabs.com (mail138.messagelabs.com [216.82.249.35]) by kanga.kvack.org (Postfix) with SMTP id AC4486B0083 for ; Wed, 10 Mar 2010 14:18:44 -0500 (EST) Date: Wed, 10 Mar 2010 13:18:42 -0600 From: Robin Holt Subject: mm/ksm.c seems to be doing an unneeded _notify. Message-ID: <20100310191842.GL5677@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: owner-linux-mm@kvack.org To: Izik Eidus Cc: Hugh Dickins , Chris Wright , linux-mm@kvack.org List-ID: While reviewing ksm.c, I noticed that ksm.c does: if (pte_write(*ptep)) { pte_t entry; swapped = PageSwapCache(page); flush_cache_page(vma, addr, page_to_pfn(page)); /* * Ok this is tricky, when get_user_pages_fast() run it doesnt * take any lock, therefore the check that we are going to make * with the pagecount against the mapcount is racey and * O_DIRECT can happen right after the check. * So we clear the pte and flush the tlb before the check * this assure us that no O_DIRECT can happen after the check * or in the middle of the check. */ entry = ptep_clear_flush(vma, addr, ptep); /* * Check that no O_DIRECT or similar I/O is in progress on the * page */ if (page_mapcount(page) + 1 + swapped != page_count(page)) { set_pte_at_notify(mm, addr, ptep, entry); goto out_unlock; } entry = pte_wrprotect(entry); set_pte_at_notify(mm, addr, ptep, entry); I would think the error case (where the page has an elevated page_count) should not be using set_pte_at_notify. In that event, you are simply restoring the previous value. Have I missed something or is this an extraneous _notify? Thanks, Robin Holt -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail202.messagelabs.com (mail202.messagelabs.com [216.82.254.227]) by kanga.kvack.org (Postfix) with SMTP id 9EA646B0047 for ; Wed, 10 Mar 2010 15:17:43 -0500 (EST) Message-ID: <4B97FED5.2030007@redhat.com> Date: Wed, 10 Mar 2010 22:19:33 +0200 From: Izik Eidus MIME-Version: 1.0 Subject: Re: mm/ksm.c seems to be doing an unneeded _notify. References: <20100310191842.GL5677@sgi.com> In-Reply-To: <20100310191842.GL5677@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org To: Robin Holt Cc: Hugh Dickins , Chris Wright , linux-mm@kvack.org, Andrea Arcangeli List-ID: On 03/10/2010 09:18 PM, Robin Holt wrote: > While reviewing ksm.c, I noticed that ksm.c does: > > if (pte_write(*ptep)) { > pte_t entry; > > swapped = PageSwapCache(page); > flush_cache_page(vma, addr, page_to_pfn(page)); > /* > * Ok this is tricky, when get_user_pages_fast() run it doesnt > * take any lock, therefore the check that we are going to make > * with the pagecount against the mapcount is racey and > * O_DIRECT can happen right after the check. > * So we clear the pte and flush the tlb before the check > * this assure us that no O_DIRECT can happen after the check > * or in the middle of the check. > */ > entry = ptep_clear_flush(vma, addr, ptep); > /* > * Check that no O_DIRECT or similar I/O is in progress on the > * page > */ > if (page_mapcount(page) + 1 + swapped != page_count(page)) { > set_pte_at_notify(mm, addr, ptep, entry); > goto out_unlock; > } > entry = pte_wrprotect(entry); > set_pte_at_notify(mm, addr, ptep, entry); > > > I would think the error case (where the page has an elevated page_count) > should not be using set_pte_at_notify. In that event, you are simply > restoring the previous value. Have I missed something or is this an > extraneous _notify? > Yes, I think you are right set_pte_at(mm, addr, ptep, entry); would be enough here. I can`t remember or think any reason why I have used the _notify... Lets just get ACK from Andrea and Hugh that they agree it isn't needed Thanks. > Thanks, > Robin Holt > -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail190.messagelabs.com (mail190.messagelabs.com [216.82.249.51]) by kanga.kvack.org (Postfix) with SMTP id ED46B6B0047 for ; Wed, 10 Mar 2010 15:19:19 -0500 (EST) Date: Wed, 10 Mar 2010 12:19:16 -0800 From: Chris Wright Subject: Re: mm/ksm.c seems to be doing an unneeded _notify. Message-ID: <20100310201916.GD9100@x200.localdomain> References: <20100310191842.GL5677@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100310191842.GL5677@sgi.com> Sender: owner-linux-mm@kvack.org To: Robin Holt Cc: Izik Eidus , Hugh Dickins , Chris Wright , linux-mm@kvack.org List-ID: * Robin Holt (holt@sgi.com) wrote: > While reviewing ksm.c, I noticed that ksm.c does: > > if (pte_write(*ptep)) { > pte_t entry; > > swapped = PageSwapCache(page); > flush_cache_page(vma, addr, page_to_pfn(page)); > /* > * Ok this is tricky, when get_user_pages_fast() run it doesnt > * take any lock, therefore the check that we are going to make > * with the pagecount against the mapcount is racey and > * O_DIRECT can happen right after the check. > * So we clear the pte and flush the tlb before the check > * this assure us that no O_DIRECT can happen after the check > * or in the middle of the check. > */ > entry = ptep_clear_flush(vma, addr, ptep); > /* > * Check that no O_DIRECT or similar I/O is in progress on the > * page > */ > if (page_mapcount(page) + 1 + swapped != page_count(page)) { > set_pte_at_notify(mm, addr, ptep, entry); > goto out_unlock; > } > entry = pte_wrprotect(entry); > set_pte_at_notify(mm, addr, ptep, entry); > > > I would think the error case (where the page has an elevated page_count) > should not be using set_pte_at_notify. In that event, you are simply > restoring the previous value. Have I missed something or is this an > extraneous _notify? It does look extraneous to me as well. thanks, -chris -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail144.messagelabs.com (mail144.messagelabs.com [216.82.254.51]) by kanga.kvack.org (Postfix) with SMTP id B65A76B007D for ; Wed, 10 Mar 2010 17:19:08 -0500 (EST) Date: Wed, 10 Mar 2010 23:19:03 +0100 From: Andrea Arcangeli Subject: Re: mm/ksm.c seems to be doing an unneeded _notify. Message-ID: <20100310221903.GC5967@random.random> References: <20100310191842.GL5677@sgi.com> <4B97FED5.2030007@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4B97FED5.2030007@redhat.com> Sender: owner-linux-mm@kvack.org To: Izik Eidus Cc: Robin Holt , Hugh Dickins , Chris Wright , linux-mm@kvack.org List-ID: On Wed, Mar 10, 2010 at 10:19:33PM +0200, Izik Eidus wrote: > On 03/10/2010 09:18 PM, Robin Holt wrote: > > While reviewing ksm.c, I noticed that ksm.c does: > > > > if (pte_write(*ptep)) { > > pte_t entry; > > > > swapped = PageSwapCache(page); > > flush_cache_page(vma, addr, page_to_pfn(page)); > > /* > > * Ok this is tricky, when get_user_pages_fast() run it doesnt > > * take any lock, therefore the check that we are going to make > > * with the pagecount against the mapcount is racey and > > * O_DIRECT can happen right after the check. > > * So we clear the pte and flush the tlb before the check > > * this assure us that no O_DIRECT can happen after the check > > * or in the middle of the check. > > */ > > entry = ptep_clear_flush(vma, addr, ptep); > > /* > > * Check that no O_DIRECT or similar I/O is in progress on the > > * page > > */ > > if (page_mapcount(page) + 1 + swapped != page_count(page)) { > > set_pte_at_notify(mm, addr, ptep, entry); > > goto out_unlock; > > } > > entry = pte_wrprotect(entry); > > set_pte_at_notify(mm, addr, ptep, entry); > > > > > > I would think the error case (where the page has an elevated page_count) > > should not be using set_pte_at_notify. In that event, you are simply > > restoring the previous value. Have I missed something or is this an > > extraneous _notify? > > > > Yes, I think you are right set_pte_at(mm, addr, ptep, entry); would be > enough here. > > I can`t remember or think any reason why I have used the _notify... > > Lets just get ACK from Andrea and Hugh that they agree it isn't needed _notify it's needed, we're downgrading permissions here. -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail190.messagelabs.com (mail190.messagelabs.com [216.82.249.51]) by kanga.kvack.org (Postfix) with ESMTP id ACE5A6B00A8 for ; Thu, 11 Mar 2010 01:23:51 -0500 (EST) Received: from spaceape10.eur.corp.google.com (spaceape10.eur.corp.google.com [172.28.16.144]) by smtp-out.google.com with ESMTP id o2B6NluB025746 for ; Thu, 11 Mar 2010 06:23:48 GMT Received: from gyh20 (gyh20.prod.google.com [10.243.50.212]) by spaceape10.eur.corp.google.com with ESMTP id o2B6Nj6R030330 for ; Wed, 10 Mar 2010 22:23:46 -0800 Received: by gyh20 with SMTP id 20so2554357gyh.16 for ; Wed, 10 Mar 2010 22:23:45 -0800 (PST) Date: Thu, 11 Mar 2010 06:23:33 +0000 (GMT) From: Hugh Dickins Subject: Re: mm/ksm.c seems to be doing an unneeded _notify. In-Reply-To: <20100310221903.GC5967@random.random> Message-ID: References: <20100310191842.GL5677@sgi.com> <4B97FED5.2030007@redhat.com> <20100310221903.GC5967@random.random> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-linux-mm@kvack.org To: Andrea Arcangeli Cc: Izik Eidus , Robin Holt , Chris Wright , linux-mm@kvack.org List-ID: On Wed, 10 Mar 2010, Andrea Arcangeli wrote: > On Wed, Mar 10, 2010 at 10:19:33PM +0200, Izik Eidus wrote: > > On 03/10/2010 09:18 PM, Robin Holt wrote: > > > While reviewing ksm.c, I noticed that ksm.c does: > > > > > > if (pte_write(*ptep)) { > > > pte_t entry; > > > > > > swapped = PageSwapCache(page); > > > flush_cache_page(vma, addr, page_to_pfn(page)); > > > /* > > > * Ok this is tricky, when get_user_pages_fast() run it doesnt > > > * take any lock, therefore the check that we are going to make > > > * with the pagecount against the mapcount is racey and > > > * O_DIRECT can happen right after the check. > > > * So we clear the pte and flush the tlb before the check > > > * this assure us that no O_DIRECT can happen after the check > > > * or in the middle of the check. > > > */ > > > entry = ptep_clear_flush(vma, addr, ptep); > > > /* > > > * Check that no O_DIRECT or similar I/O is in progress on the > > > * page > > > */ > > > if (page_mapcount(page) + 1 + swapped != page_count(page)) { > > > set_pte_at_notify(mm, addr, ptep, entry); > > > goto out_unlock; > > > } > > > entry = pte_wrprotect(entry); > > > set_pte_at_notify(mm, addr, ptep, entry); > > > > > > > > > I would think the error case (where the page has an elevated page_count) > > > should not be using set_pte_at_notify. In that event, you are simply > > > restoring the previous value. Have I missed something or is this an > > > extraneous _notify? > > > > > > > Yes, I think you are right set_pte_at(mm, addr, ptep, entry); would be > > enough here. > > > > I can`t remember or think any reason why I have used the _notify... > > > > Lets just get ACK from Andrea and Hugh that they agree it isn't needed > > _notify it's needed, we're downgrading permissions here. Robin is not questioning that it's needed in the success case; but in the case where we back out because the counts don't match, and just put back the original entry, he's suggesting that then the _notify isn't needed. (I'm guessing that Robin is not making a significant improvement to KSM, but rather trying to clarify his understanding of set_pte_at_notify.) Hugh -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail137.messagelabs.com (mail137.messagelabs.com [216.82.249.19]) by kanga.kvack.org (Postfix) with SMTP id C4B0E6B00D0 for ; Thu, 11 Mar 2010 08:18:56 -0500 (EST) Message-ID: <4B98EE31.80502@redhat.com> Date: Thu, 11 Mar 2010 15:20:49 +0200 From: Izik Eidus MIME-Version: 1.0 Subject: Re: mm/ksm.c seems to be doing an unneeded _notify. References: <20100310191842.GL5677@sgi.com> <4B97FED5.2030007@redhat.com> <20100310221903.GC5967@random.random> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org To: Hugh Dickins Cc: Andrea Arcangeli , Robin Holt , Chris Wright , linux-mm@kvack.org List-ID: On 03/11/2010 08:23 AM, Hugh Dickins wrote: > On Wed, 10 Mar 2010, Andrea Arcangeli wrote: > >> On Wed, Mar 10, 2010 at 10:19:33PM +0200, Izik Eidus wrote: >> >>> On 03/10/2010 09:18 PM, Robin Holt wrote: >>> >>>> While reviewing ksm.c, I noticed that ksm.c does: >>>> >>>> if (pte_write(*ptep)) { >>>> pte_t entry; >>>> >>>> swapped = PageSwapCache(page); >>>> flush_cache_page(vma, addr, page_to_pfn(page)); >>>> /* >>>> * Ok this is tricky, when get_user_pages_fast() run it doesnt >>>> * take any lock, therefore the check that we are going to make >>>> * with the pagecount against the mapcount is racey and >>>> * O_DIRECT can happen right after the check. >>>> * So we clear the pte and flush the tlb before the check >>>> * this assure us that no O_DIRECT can happen after the check >>>> * or in the middle of the check. >>>> */ >>>> entry = ptep_clear_flush(vma, addr, ptep); >>>> /* >>>> * Check that no O_DIRECT or similar I/O is in progress on the >>>> * page >>>> */ >>>> if (page_mapcount(page) + 1 + swapped != page_count(page)) { >>>> set_pte_at_notify(mm, addr, ptep, entry); >>>> goto out_unlock; >>>> } >>>> entry = pte_wrprotect(entry); >>>> set_pte_at_notify(mm, addr, ptep, entry); >>>> >>>> >>>> I would think the error case (where the page has an elevated page_count) >>>> should not be using set_pte_at_notify. In that event, you are simply >>>> restoring the previous value. Have I missed something or is this an >>>> extraneous _notify? >>>> >>>> >>> Yes, I think you are right set_pte_at(mm, addr, ptep, entry); would be >>> enough here. >>> >>> I can`t remember or think any reason why I have used the _notify... >>> >>> Lets just get ACK from Andrea and Hugh that they agree it isn't needed >>> >> _notify it's needed, we're downgrading permissions here. >> > Robin is not questioning that it's needed in the success case; > but in the case where we back out because the counts don't match, > and just put back the original entry, he's suggesting that then > the _notify isn't needed. > Yes exactly, and at that 'counts don`t match' path - there is no need to call to _notify. > (I'm guessing that Robin is not making a significant improvement to KSM, > but rather trying to clarify his understanding of set_pte_at_notify.) > Yea, it won`t run unless at very rare cases > Hugh > -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail202.messagelabs.com (mail202.messagelabs.com [216.82.254.227]) by kanga.kvack.org (Postfix) with SMTP id DB88B6B00DD for ; Thu, 11 Mar 2010 10:54:50 -0500 (EST) Date: Thu, 11 Mar 2010 09:54:22 -0600 From: Robin Holt Subject: [Patch] mm/ksm.c is doing an unneeded _notify in write_protect_page. Message-ID: <20100311155422.GB5685@sgi.com> References: <20100310191842.GL5677@sgi.com> <4B97FED5.2030007@redhat.com> <20100310221903.GC5967@random.random> <4B98EE31.80502@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4B98EE31.80502@redhat.com> Sender: owner-linux-mm@kvack.org To: Izik Eidus Cc: Hugh Dickins , Andrea Arcangeli , Robin Holt , Chris Wright , linux-mm@kvack.org List-ID: ksm.c's write_protect_page implements a lockless means of verifying a page does not have any users of the page which are not accounted for via other kernel tracking means. It does this by removing the writable pte with TLB flushes, checking the page_count against the total known users, and then using set_pte_at_notify to make it a read-only entry. An unneeded mmu_notifier callout is made in the case where the known users does not match the page_count. In that event, we are inserting the identical pte and there is no need for the set_pte_at_notify, but rather the simpler set_pte_at suffices. Signed-off-by: Robin Holt To: Izik Eidus Cc: Hugh Dickins Cc: Chris Wright Cc: linux-mm@kvack.org --- mm/ksm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: ksm_remove_notify/mm/ksm.c =================================================================== --- ksm_remove_notify.orig/mm/ksm.c 2010-03-11 09:24:30.000000000 -0600 +++ ksm_remove_notify/mm/ksm.c 2010-03-11 09:35:18.000000000 -0600 @@ -751,7 +751,7 @@ static int write_protect_page(struct vm_ * page */ if (page_mapcount(page) + 1 + swapped != page_count(page)) { - set_pte_at_notify(mm, addr, ptep, entry); + set_pte_at(mm, addr, ptep, entry); goto out_unlock; } entry = pte_wrprotect(entry); -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail138.messagelabs.com (mail138.messagelabs.com [216.82.249.35]) by kanga.kvack.org (Postfix) with SMTP id A92366B00DE for ; Thu, 11 Mar 2010 11:00:20 -0500 (EST) Date: Thu, 11 Mar 2010 18:01:59 +0200 From: Izik Eidus Subject: Re: [Patch] mm/ksm.c is doing an unneeded _notify in write_protect_page. Message-ID: <20100311180159.124ffecd@redhat.com> In-Reply-To: <20100311155422.GB5685@sgi.com> References: <20100310191842.GL5677@sgi.com> <4B97FED5.2030007@redhat.com> <20100310221903.GC5967@random.random> <4B98EE31.80502@redhat.com> <20100311155422.GB5685@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org To: Robin Holt Cc: Hugh Dickins , Andrea Arcangeli , Chris Wright , linux-mm@kvack.org List-ID: On Thu, 11 Mar 2010 09:54:22 -0600 Robin Holt wrote: > > ksm.c's write_protect_page implements a lockless means of verifying a > page does not have any users of the page which are not accounted for via > other kernel tracking means. It does this by removing the writable pte > with TLB flushes, checking the page_count against the total known users, > and then using set_pte_at_notify to make it a read-only entry. > > An unneeded mmu_notifier callout is made in the case where the known > users does not match the page_count. In that event, we are inserting > the identical pte and there is no need for the set_pte_at_notify, but > rather the simpler set_pte_at suffices. > > Signed-off-by: Robin Holt > To: Izik Eidus > Cc: Hugh Dickins > Cc: Chris Wright > Cc: linux-mm@kvack.org Acked-by: Izik Eidus > > --- > > mm/ksm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Index: ksm_remove_notify/mm/ksm.c > =================================================================== > --- ksm_remove_notify.orig/mm/ksm.c 2010-03-11 09:24:30.000000000 -0600 > +++ ksm_remove_notify/mm/ksm.c 2010-03-11 09:35:18.000000000 -0600 > @@ -751,7 +751,7 @@ static int write_protect_page(struct vm_ > * page > */ > if (page_mapcount(page) + 1 + swapped != page_count(page)) { > - set_pte_at_notify(mm, addr, ptep, entry); > + set_pte_at(mm, addr, ptep, entry); > goto out_unlock; > } > entry = pte_wrprotect(entry); -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail138.messagelabs.com (mail138.messagelabs.com [216.82.249.35]) by kanga.kvack.org (Postfix) with SMTP id 251DB6B00E1 for ; Thu, 11 Mar 2010 11:07:10 -0500 (EST) Date: Thu, 11 Mar 2010 17:06:16 +0100 From: Andrea Arcangeli Subject: Re: [Patch] mm/ksm.c is doing an unneeded _notify in write_protect_page. Message-ID: <20100311160616.GH5677@random.random> References: <20100310191842.GL5677@sgi.com> <4B97FED5.2030007@redhat.com> <20100310221903.GC5967@random.random> <4B98EE31.80502@redhat.com> <20100311155422.GB5685@sgi.com> <20100311180159.124ffecd@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100311180159.124ffecd@redhat.com> Sender: owner-linux-mm@kvack.org To: Izik Eidus Cc: Robin Holt , Hugh Dickins , Chris Wright , linux-mm@kvack.org List-ID: On Thu, Mar 11, 2010 at 06:01:59PM +0200, Izik Eidus wrote: > On Thu, 11 Mar 2010 09:54:22 -0600 > Robin Holt wrote: > > > > > ksm.c's write_protect_page implements a lockless means of verifying a > > page does not have any users of the page which are not accounted for via > > other kernel tracking means. It does this by removing the writable pte > > with TLB flushes, checking the page_count against the total known users, > > and then using set_pte_at_notify to make it a read-only entry. > > > > An unneeded mmu_notifier callout is made in the case where the known > > users does not match the page_count. In that event, we are inserting > > the identical pte and there is no need for the set_pte_at_notify, but > > rather the simpler set_pte_at suffices. > > > > Signed-off-by: Robin Holt > > To: Izik Eidus > > Cc: Hugh Dickins > > Cc: Chris Wright > > Cc: linux-mm@kvack.org > > Acked-by: Izik Eidus Ack too. I misunderstood what you were talking about before, patch makes it clear now ;). -- 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