Messages in this thread | | | Date | Fri, 04 Feb 2000 22:00:28 +0100 | From | Manfred Spraul <> | Subject | Re: 2.3.42 alpha updates |
| |
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/
| |