[lkml]   [2000]   [Oct]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: SMP VM race in 2.[0-4]

> 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:

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

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:45    [W:0.103 / U:4.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site