On Thu, Dec 17, 2009 at 08:46:33AM -0800, Linus Torvalds wrote: > The whole "vmalloc is special" has always been true. If you want to > treat vmalloc as normal memory, you need to look up the pages yourself. We > have helpers for that (including helpers that populate vmalloc space from > a page array to begin with - so you can _start_ from some array of pages > and then lay them out virtually if you want to have a convenient CPU > access to the array). Which is exactly what the XFS code does. Pages are allocated manually and we store pointers to the page struct that later get added to the bio. But we access them through vmap (which I added exactly for this reason back in 2002) for kernel accesses. On all architectures with sane caches things just work, but for parisc, arm and friends that have virtually indexed caches we need to make sure to flush caches for this different access. The vmalloc linear address is not used for I/O everywhere. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html