[Top] [All Lists]

Re: dcache aliasing problem on fork

Subject: Re: dcache aliasing problem on fork
From: Atsushi Nemoto <>
Date: Sat, 05 Feb 2005 21:06:48 +0900 (JST)
In-reply-to: <>
Original-recipient: rfc822;
References: <> <>
>>>>> On Fri, 4 Feb 2005 09:44:10 -0800, Jun Sun <> said:

jsun> It seems to me a naive solution is to introduce a spinlock to
jsun> make all three operation automic.  you flush tlb first and make
jsun> relavent tlb fault handling sync with this spinlock as well.

jsun> At in theory it should fix the problem, but the spinlock might
jsun> be held for too long this dup_mmap().

Yes, it may be too long.  Also dup_mmap might sleep via alloc_pages,
cond_resched_lock, etc. therefore the spinlock can not be held
entirely.  Now I think fixing copy_cow_page() might be a way to go.

jsun> BTW, is this problem real or hypothetic?

Yes.  This is a real problem.  Using fork() in multi-thread program
should be legal and perhaps only way to call external program
(system() will use fork() internally).  It will not be a special case.

Atsushi Nemoto

<Prev in Thread] Current Thread [Next in Thread>