Re: filemap.c SMP bug in 2.4.0-test*
From: Rik van Riel <hidden>
Date: 2000-08-16 02:46:22
On Tue, 15 Aug 2000, Linus Torvalds wrote:
On Tue, 15 Aug 2000, Rik van Riel wrote:quoted
The debugging check (in mm/swap.c::lru_cache_add(), line 232) checks if the page which is to be added to the page lists is already on one of the lists. In case it is, a nice backtrace follows...Why do you think your "PageActive()"/"PageInactiveDirty()"/ "PageInactiveClean()" tests are right? I don't see any reason to assume that you just don't clear the flags correctly. In fact, if this bug really existed in the standard kernel, you'd see machines locking up left and right. Adding a page to a the LRU list when it already is on the LRU list would cause immediate and severe list corruption. It wouldn't just go silently in the night, it would _scream_. I would suggest that you add something like DEBUG_ADD_PAGE to __free_pages_ok(), and see if somebody frees the page without clearing the flags. Sounds like a bug in your code.
This test is in _all_ places where pages are added or
removed from the list and in __free_pages_ok().
The only place where I'm hitting the bug is in
lru_cache_add.
OTOH, I wouldn't mind it if you were to take a look
at my code and potted the bug ;))
regards,
Rik
--
"What you're running that piece of shit Gnome?!?!"
-- Miguel de Icaza, UKUUG 2000
http://www.conectiva.com/ http://www.surriel.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/