linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: Andrew Morton <akpm@osdl.org>
Cc: hugh@veritas.com, linux-kernel@vger.kernel.org,
	lee.schermerhorn@hp.com, linux-mm@kvack.org, taka@valinux.co.jp,
	marcelo.tosatti@cyclades.com, kamezawa.hiroyu@jp.fujitsu.com
Subject: Re: Implement lookup_swap_cache for migration entries
Date: Fri, 14 Apr 2006 12:22:45 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.64.0604141214060.22652@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <20060414121537.11134d26.akpm@osdl.org>

On Fri, 14 Apr 2006, Andrew Morton wrote:

> > > What locking ensures that the state of `entry' remains unaltered across the
> > > is_migration_entry() and migration_entry_to_page() calls?
> > 
> > entry is a variable passed by value to the function.
> 
> Sigh.
> 
> What locking ensures that the state of the page referred to by `entry' is
> stable?

Oh, that.

Well, there is no locking when retrieving a pte atomically from the page 
table. In do_swap_cache we figure out the page from the pte, lock the page 
and then check that the pte has not changed. If it has changed then we 
redo the fault. If the pte is still the same then we know that the page 
was stable in the sense that it is still mapped the same way. So it was 
not freed.

This applies to all pages handled by do_swap_page().

The differences are:

1. A migration entry does not take the tree_lock in lookup_swap_cache().

2. The migration thread will restore the regular pte before 
   dropping the page lock.

So after we succeed with the page lock we know that the pte has been 
changed. The fault will be redone with the regular pte.

--
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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2006-04-14 19:22 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-13 23:54 [PATCH 0/5] Swapless page migration V2: Overview Christoph Lameter
2006-04-13 23:54 ` [PATCH 1/5] Swapless V2: try_to_unmap() - Rename ignrefs to "migration" Christoph Lameter
2006-04-13 23:54 ` [PATCH 2/5] Swapless V2: Add migration swap entries Christoph Lameter
2006-04-14  0:13   ` Andrew Morton
2006-04-14  0:29     ` Christoph Lameter
2006-04-14  0:42       ` Andrew Morton
2006-04-14  0:46         ` Christoph Lameter
2006-04-14  1:01           ` Andrew Morton
2006-04-14  1:17             ` Andrew Morton
2006-04-14  1:31               ` Christoph Lameter
2006-04-14  5:25                 ` Andrew Morton
2006-04-14 14:27                   ` Lee Schermerhorn
2006-04-14 16:01                   ` Christoph Lameter
2006-04-14  1:31             ` Christoph Lameter
2006-04-14  5:29               ` Andrew Morton
2006-04-14 17:28                 ` Implement lookup_swap_cache for migration entries Christoph Lameter
2006-04-14 18:31                   ` Andrew Morton
2006-04-14 18:48                     ` Christoph Lameter
2006-04-14 19:15                       ` Andrew Morton
2006-04-14 19:22                         ` Christoph Lameter [this message]
2006-04-14 19:53                           ` Andrew Morton
2006-04-14 20:12                             ` Christoph Lameter
2006-04-14 21:51                             ` Wait for migrating page after incr of page count under anon_vma lock Christoph Lameter
2006-04-17 23:52                               ` migration_entry_wait: Use the pte lock instead of the " Christoph Lameter
2006-04-14  0:36     ` [PATCH 2/5] Swapless V2: Add migration swap entries Christoph Lameter
2006-04-13 23:54 ` [PATCH 3/5] Swapless V2: Make try_to_unmap() create migration entries Christoph Lameter
2006-04-13 23:54 ` [PATCH 4/5] Swapless V2: Rip out swap portion of old migration code Christoph Lameter
2006-04-13 23:54 ` [PATCH 5/5] Swapless V2: Revise main migration logic Christoph Lameter
2006-04-14  1:19   ` KAMEZAWA Hiroyuki
2006-04-14  1:33     ` Christoph Lameter
2006-04-14  1:40       ` KAMEZAWA Hiroyuki
2006-04-14  2:34       ` KAMEZAWA Hiroyuki
2006-04-14  2:44         ` KAMEZAWA Hiroyuki
2006-04-14 17:29           ` Preserve write permissions in migration entries Christoph Lameter
2006-04-14 16:48         ` [PATCH 5/5] Swapless V2: Revise main migration logic Christoph Lameter
2006-04-15  0:06           ` KAMEZAWA Hiroyuki
2006-04-15 17:41             ` Christoph Lameter
2006-04-17  0:18               ` KAMEZAWA Hiroyuki
2006-04-17 17:00                 ` Christoph Lameter
2006-04-18  0:04                   ` KAMEZAWA Hiroyuki
2006-04-18  0:27                     ` Christoph Lameter
2006-04-18  0:42                       ` KAMEZAWA Hiroyuki
2006-04-18  1:57                         ` Christoph Lameter
2006-04-18  3:00                           ` KAMEZAWA Hiroyuki
2006-04-18  3:16                             ` Christoph Lameter
2006-04-18  3:32                               ` KAMEZAWA Hiroyuki
2006-04-18  6:58                                 ` Christoph Lameter
2006-04-18  8:05                                   ` KAMEZAWA Hiroyuki
2006-04-18  8:27                                     ` Christoph Lameter
2006-04-18  9:08                                       ` KAMEZAWA Hiroyuki
2006-04-18 16:49                                         ` Christoph Lameter
2006-04-14  0:08 ` [PATCH 0/5] Swapless page migration V2: Overview Andrew Morton
2006-04-14  0:27   ` Christoph Lameter
2006-04-14 14:14     ` Lee Schermerhorn

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=Pine.LNX.4.64.0604141214060.22652@schroedinger.engr.sgi.com \
    --to=clameter@sgi.com \
    --cc=akpm@osdl.org \
    --cc=hugh@veritas.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=lee.schermerhorn@hp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=marcelo.tosatti@cyclades.com \
    --cc=taka@valinux.co.jp \
    /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;
as well as URLs for NNTP newsgroup(s).