Richard Henderson wrote:
>
> On Fri, Feb 04, 2000 at 08:42:15PM +0100, Manfred Spraul wrote:
> > Many functions such as try_to_swap_out() call flush_tlb_xy() while they
> > own a spinlock (eg. mm->page_table_lock).
>
> Really? Would you show me the call path from the spin lock aquire
> to try_to_swap_out? I don't see it.
>
the comment is outdated:
try_to_swap_out() is called with vmlist_access_lock()'ed, and it unlocks
that lock before sleeping. However, it calls flush_tlb_page() before
releasing that lock.
vmlist_access_lock is a define:
#define vmlist_access_lock(mm) spin_lock(&mm->page_table_lock)
That lock was added around 2.3.2x to close races between concurrent
swap-outs and other mm operations such as mprotect: unlike 2.2,
mprotect() now runs without lock_kernel().
-- Manfred- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Mon Feb 07 2000 - 21:00:11 EST