Hi.

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. 

Mikulas


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to