Messages in this thread |  | | Date | Tue, 25 Sep 2001 12:57:58 -0700 (PDT) | Subject | Re: Locking comment on shrink_caches() | From | "David S. Miller" <> |
| |
From: Marcelo Tosatti <marcelo@conectiva.com.br> Date: Tue, 25 Sep 2001 14:49:40 -0300 (BRT)
Do you really need to do this ?
if (unlikely(!spin_trylock(&pagecache_lock))) { /* we hold the page lock so the page cannot go away from under us */ spin_unlock(&pagemap_lru_lock); spin_lock(&pagecache_lock); spin_lock(&pagemap_lru_lock); } Have you actually seen bad hold times of pagecache_lock by shrink_caches() ?
Marcelo, this is needed because of the spin lock ordering rules. The pagecache_lock must be obtained before the pagemap_lru_lock or else deadlock is possible. The spin_trylock is an optimization.
Franks a lot, David S. Miller davem@redhat.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/
|  |