Re: SMP VM race in 2.[0-4]

From: Eric Lowe (elowe@myrile.madriver.k12.oh.us)
Date: Wed Oct 04 2000 - 09:13:52 EST


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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Oct 07 2000 - 21:00:14 EST