Re: Wiring down Pages
On Thu, 21 Dec 2000, Robert Read wrote: > On Thu, Dec 21, 2000 at 06:46:33PM -0200, Rik van Riel wrote: > > > > page_cache_drop(page); <= removes your extra count > > I can't find that function, do you mean page_cache_free() and > page_cache_release(), both are aliases for __free_page(). Maybe > we need another alias. :) page_cache_release(), indeed. My bad... > Should non-page cache related code use get_page() and > __free_page() directly? Or should the page_cache_* macros be > used everywhere? The non-page cache related code should use get_page() and __free_page() (put_page?) directly. There may come a day where the pagecache page size can be different from the page size ... regards, Rik -- Hollywood goes for world dumbination, Trailer at 11. http://www.surriel.com/ http://www.conectiva.com/ http://distro.conectiva.com.br/ - 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/
Re: Wiring down Pages
On Thu, Dec 21, 2000 at 06:46:33PM -0200, Rik van Riel wrote: > > page_cache_drop(page); <= removes your extra count I can't find that function, do you mean page_cache_free() and page_cache_release(), both are aliases for __free_page(). Maybe we need another alias. :) Should non-page cache related code use get_page() and __free_page() directly? Or should the page_cache_* macros be used everywhere? robert - 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/
Re: Wiring down Pages
On Fri, 22 Dec 2000, Sourav Sen wrote: > Suppose I want to wire-down( as they call in BSD ) a page > in memory, how I go about doing that? (I guess by setting the > PG_locked bit of the flags field in the struct page, I can do > it, am I right?) Linux simply uses page->count for this. By using the page->count, multiple parts of the kernel can pin the same page in memory at different times and unlock them at different times without any locking/unlocking conflicts... page_cache_get(page); <= increases page->count page_cache_drop(page); <= removes your extra count regards, Rik -- Hollywood goes for world dumbination, Trailer at 11. http://www.surriel.com/ http://www.conectiva.com/ http://distro.conectiva.com.br/ - 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/