dax: does not work correctly with virtual aliasing caches
authorMatthew Wilcox <[email protected]>
Mon, 16 Feb 2015 23:59:44 +0000 (15:59 -0800)
committerLinus Torvalds <[email protected]>
Tue, 17 Feb 2015 01:56:04 +0000 (17:56 -0800)
The DAX code accesses the underlying storage through the kernel's linear
mapping, which may not be cache-coherent with user mappings on ARM, MIPS
or SPARC.  Temporarily disable the DAX code until this problem is
resolved.

The original XIP code also had this problem, but it was never noticed.

Signed-off-by: Matthew Wilcox <[email protected]>
Cc: Andreas Dilger <[email protected]>
Cc: Boaz Harrosh <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Dave Chinner <[email protected]>
Cc: Jan Kara <[email protected]>
Cc: Jens Axboe <[email protected]>
Cc: Kirill A. Shutemov <[email protected]>
Cc: Mathieu Desnoyers <[email protected]>
Cc: Randy Dunlap <[email protected]>
Cc: Ross Zwisler <[email protected]>
Cc: Theodore Ts'o <[email protected]>
Cc: Ralf Baechle <[email protected]>
Cc: Russell King <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Documentation/filesystems/dax.txt
fs/Kconfig

index be376d91d0585cc59d03305e6b87ff6df8bd0e11..baf41118660d6019b475eb27d58abe83e1aea0d4 100644 (file)
@@ -82,6 +82,9 @@ Shortcomings
 Even if the kernel or its modules are stored on a filesystem that supports
 DAX on a block device that supports DAX, they will still be copied into RAM.
 
+The DAX code does not work correctly on architectures which have virtually
+mapped caches such as ARM, MIPS and SPARC.
+
 Calling get_user_pages() on a range of user memory that has been mmaped
 from a DAX file will fail as there are no 'struct page' to describe
 those pages.  This problem is being worked on.  That means that O_DIRECT
index 5331497d5b2545811494223650550b8fe68c8a96..ec35851e5b71c4a19897bf97a70d5ec80fb67128 100644 (file)
@@ -36,6 +36,7 @@ source "fs/nilfs2/Kconfig"
 config FS_DAX
        bool "Direct Access (DAX) support"
        depends on MMU
+       depends on !(ARM || MIPS || SPARC)
        help
          Direct Access (DAX) can be used on memory-backed block devices.
          If the block device supports DAX and the filesystem supports DAX,