2 Jul 2006 20:44
[RFC][PATCH] mm: concurrent page-cache
Peter Zijlstra <a.p.zijlstra <at> chello.nl>
2006-07-02 18:44:12 GMT
2006-07-02 18:44:12 GMT
Hi, here my current attempts at a concurrent page-cache. It applies on top if Nick's latest lockless page-cache patch. It is very much a work-in-progress. It may eat your data. I post with the hopes of getting some feedback. I've ran it on a SMP qemu and found that it currently live-locks in find_get_pages_tag(). It seems to be the case that a concurrent radix_tree_tag_clear()/radix_tree_delete() removed the 'last' entry for a gang lookup, which makes find_get_pages_tag() loop forever since it requires progress. If this is indeed the case, it seems to me the lockless page-cache patch might be susceptible to this same problem. I still have to investigate fully, but I might not have time to look into it until after Ottawa. Signed-off-by: Peter Zijlstra <a.p.zijlstra <at> chello.nl> --- fs/buffer.c | 4 include/linux/page-flags.h | 2 include/linux/pagemap.h | 21 +-- include/linux/radix-tree.h | 6 lib/radix-tree.c | 314 +++++++++++++++++++++++++++++++++------------ mm/filemap.c | 41 +++-- mm/migrate.c | 27 ++-(Continue reading)
RSS Feed