[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SMP VM race in 2.[0-4]
Hello,
> I found a possible problem on SMP. In vmscan.c / try_to_swap_out you do
> not use atomic operations for manipulating with ptes. You read the pte,
> modify it and write it nonatomically. When the second CPU is running
> process that turns on 'D' bit of pte while the first CPU is in
> try_to_swap_out, 'D' bit is lost. Because anonymous pages have always 'D'
> bit set, the bug can only affect pages mapped with MAP_SHAREAD,
> PROT_WRITE. Sometimes updates are not written back to file.
>
You're correct. A discussion about this occurred on Linux-MM
1-2 weeks ago, and a patch followed. (Unfortunately, it's not
very efficient, but I'm not sure if anyone has found a really
good solution yet to this problem on any other x86 OS)
Check out:
http://mail.nl.linux.org/linux-mm/2000-09/
Thread: [PATCH] workaround for lost dirty bits on x86 SMP -and-
Thread: [PATCH] 2.2.18pre5 version of pte dirty bit psmp race atch
--
Eric Lowe
FibreChannel Software Engineer, Systran Corporation
elowe@systran.com
--
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.eu.org/Linux-MM/