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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: Implement lookup_swap_cache for migration entries
- From: Andrew Morton <[email protected]>
- Re: Implement lookup_swap_cache for migration entries
- References:
- [PATCH 0/5] Swapless page migration V2: Overview
- From: Christoph Lameter <[email protected]>
- [PATCH 2/5] Swapless V2: Add migration swap entries
- From: Christoph Lameter <[email protected]>
- Re: [PATCH 2/5] Swapless V2: Add migration swap entries
- From: Andrew Morton <[email protected]>
- Re: [PATCH 2/5] Swapless V2: Add migration swap entries
- From: Christoph Lameter <[email protected]>
- Re: [PATCH 2/5] Swapless V2: Add migration swap entries
- From: Andrew Morton <[email protected]>
- Re: [PATCH 2/5] Swapless V2: Add migration swap entries
- From: Christoph Lameter <[email protected]>
- Re: [PATCH 2/5] Swapless V2: Add migration swap entries
- From: Andrew Morton <[email protected]>
- Re: [PATCH 2/5] Swapless V2: Add migration swap entries
- From: Christoph Lameter <[email protected]>
- Re: [PATCH 2/5] Swapless V2: Add migration swap entries
- From: Andrew Morton <[email protected]>
- Implement lookup_swap_cache for migration entries
- From: Christoph Lameter <[email protected]>
- Re: Implement lookup_swap_cache for migration entries
- From: Andrew Morton <[email protected]>
- Re: Implement lookup_swap_cache for migration entries
- From: Christoph Lameter <[email protected]>
- Re: Implement lookup_swap_cache for migration entries
- From: Andrew Morton <[email protected]>
- [PATCH 0/5] Swapless page migration V2: Overview
- Prev by Date: Re: [PATCH 2/2] mm: fix mm_struct reference counting bugs in mm/oom_kill.c
- Next by Date: Re: [PATCH] Poll microoptimizations.
- Previous by thread: Re: Implement lookup_swap_cache for migration entries
- Next by thread: Re: Implement lookup_swap_cache for migration entries
- Index(es):