Messages in this thread | | | Date | Tue, 1 Sep 2009 15:18:12 +0100 | From | Russell King - ARM Linux <> | Subject | Re: How to efficiently handle DMA and cache on ARMv7 ? (was "Is get_user_pages() enough to prevent pages from being swapped out ?") |
| |
On Tue, Sep 01, 2009 at 03:43:48PM +0200, Laurent Pinchart wrote: > I might be missing something obvious, but I fail to see how VIVT caches > could work at all with multiple mappings. If a kernel-allocated buffer > is DMA'ed to, we certainly want to invalidate all cache lines that store > buffer data. As the cache doesn't care about physical addresses we thus > need to invalidate all virtual mappings for the buffer. If the buffer is > mmap'ed in userspace I don't see how that would be done.
You need to ask MM gurus about that. I don't touch the Linux MM very often so tend to keep forgetting how it works. However, it does work for shared mappings of files on CPUs with VIVT caches.
| |