On Mon, 19 Nov 2001, Linus Torvalds wrote:
> On Mon, 19 Nov 2001, Rik van Riel wrote:
> >
> > I wonder if the following scenario is possible:
>
> Hmm.. It looks valid, but for the fact that the page lock is held. So
> there's no way truncate_list_pages() can call "remove_inode_page()" on the
> page, regardless of whether the page is on the LRU list or not.
>
> That said, it might be cleaner to move the "lru_cache_add(page);" up to
> before adding the page into the page cache - that way we add a new
> invariant that just says "all pages in the page cache are on the LRU
> list", which could be used for a few extra sanity checks, for example.
Oh dear, that's an interesting case, too.
__add_to_page_cache() blindly sets the PG_locked bit, but
it's possible for other functions to acquire the page lock
before that.
This means 2 CPUs could think they're holding the page
lock for this page at the same time.
I don't see anything preventing this from happening,
except the absence of code paths trying to directly
grab hold of physical pages ;)
regards,
Rik
-- Shortwave goes a long way: irc.starchat.net #swlhttp://www.surriel.com/ http://distro.conectiva.com/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri Nov 23 2001 - 21:00:21 EST