Hi, Mapping the buffer to user space, ION failed to set the cache attributes according to ION_FLAG_CACHED flag on x86. When the reserved memory (reserved by memmap= kernel boot option) or part of it is mapped to the user space, the user space memory mapping is always *uncachable*. ION uses remap_pfn_range to create the mapping. On x86 arch, the actual cache attributes may be different from the requested ones due to the PAT implementation. When we map the PFNs one by one to some VMA, the cache attributes are set by lookup_memtype, completely ignoring the cache attributes of VMA. For example: - if the requested memory region is managed by the OS (has struct page object), the actual cache attribute is set based on struct page cache attributes saved in its flag member - if the memory region is not managed by the OS (there are no struct page object), the PAT internal RBT of memory types is scanned. If RBT defines the memory type for the requested PFN, this memory type is used, otherwise the PFN is mapped as uncachable. Is it x86 specific issue? I have implemented and tested the fix for this issue, but it looks like it should be submitted to the PAT. Thanks, Alexey _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel