Thread (6 messages) 6 messages, 2 authors, 2000-08-16

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/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help