* [RFC PATCH v2 3/8] ext2: Use dax_is_supported() [not found] <20240130165255.212591-1-mathieu.desnoyers@efficios.com> @ 2024-01-30 16:52 ` Mathieu Desnoyers 2024-01-30 21:40 ` Jan Kara 2024-01-30 16:52 ` [RFC PATCH v2 4/8] ext4: " Mathieu Desnoyers 1 sibling, 1 reply; 3+ messages in thread From: Mathieu Desnoyers @ 2024-01-30 16:52 UTC (permalink / raw) To: Dan Williams, Vishal Verma, Dave Jiang Cc: linux-kernel, Mathieu Desnoyers, Jan Kara, linux-ext4, Andrew Morton, Linus Torvalds, linux-mm, linux-arch, Matthew Wilcox, Arnd Bergmann, Russell King, nvdimm, linux-cxl, linux-fsdevel Use dax_is_supported() to validate whether the architecture has virtually aliased data caches at mount time. Print an error and disable DAX if dax=always is requested as a mount option on an architecture which does not support DAX. This is relevant for architectures which require a dynamic check to validate whether they have virtually aliased data caches. Fixes: d92576f1167c ("dax: does not work correctly with virtual aliasing caches") Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Jan Kara <jack@suse.com> Cc: linux-ext4@vger.kernel.org Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: linux-mm@kvack.org Cc: linux-arch@vger.kernel.org Cc: Dan Williams <dan.j.williams@intel.com> Cc: Vishal Verma <vishal.l.verma@intel.com> Cc: Dave Jiang <dave.jiang@intel.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Russell King <linux@armlinux.org.uk> Cc: nvdimm@lists.linux.dev Cc: linux-cxl@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org --- fs/ext2/super.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 01f9addc8b1f..30ff57d47ed4 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c @@ -955,7 +955,11 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size); if (test_opt(sb, DAX)) { - if (!sbi->s_daxdev) { + if (!dax_is_supported()) { + ext2_msg(sb, KERN_ERR, + "DAX unsupported by architecture. Turning off DAX."); + clear_opt(sbi->s_mount_opt, DAX); + } else if (!sbi->s_daxdev) { ext2_msg(sb, KERN_ERR, "DAX unsupported by block device. Turning off DAX."); clear_opt(sbi->s_mount_opt, DAX); -- 2.39.2 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [RFC PATCH v2 3/8] ext2: Use dax_is_supported() 2024-01-30 16:52 ` [RFC PATCH v2 3/8] ext2: Use dax_is_supported() Mathieu Desnoyers @ 2024-01-30 21:40 ` Jan Kara 0 siblings, 0 replies; 3+ messages in thread From: Jan Kara @ 2024-01-30 21:40 UTC (permalink / raw) To: Mathieu Desnoyers Cc: Dan Williams, Vishal Verma, Dave Jiang, linux-kernel, Jan Kara, linux-ext4, Andrew Morton, Linus Torvalds, linux-mm, linux-arch, Matthew Wilcox, Arnd Bergmann, Russell King, nvdimm, linux-cxl, linux-fsdevel On Tue 30-01-24 11:52:50, Mathieu Desnoyers wrote: > Use dax_is_supported() to validate whether the architecture has > virtually aliased data caches at mount time. Print an error and disable > DAX if dax=always is requested as a mount option on an architecture > which does not support DAX. > > This is relevant for architectures which require a dynamic check > to validate whether they have virtually aliased data caches. > > Fixes: d92576f1167c ("dax: does not work correctly with virtual aliasing caches") > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> > Cc: Jan Kara <jack@suse.com> > Cc: linux-ext4@vger.kernel.org > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Linus Torvalds <torvalds@linux-foundation.org> > Cc: linux-mm@kvack.org > Cc: linux-arch@vger.kernel.org > Cc: Dan Williams <dan.j.williams@intel.com> > Cc: Vishal Verma <vishal.l.verma@intel.com> > Cc: Dave Jiang <dave.jiang@intel.com> > Cc: Matthew Wilcox <willy@infradead.org> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Russell King <linux@armlinux.org.uk> > Cc: nvdimm@lists.linux.dev > Cc: linux-cxl@vger.kernel.org > Cc: linux-fsdevel@vger.kernel.org OK, yeah, this is better than v1. Feel free to add: Acked-by: Jan Kara <jack@suse.cz> Honza > --- > fs/ext2/super.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/fs/ext2/super.c b/fs/ext2/super.c > index 01f9addc8b1f..30ff57d47ed4 100644 > --- a/fs/ext2/super.c > +++ b/fs/ext2/super.c > @@ -955,7 +955,11 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) > blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size); > > if (test_opt(sb, DAX)) { > - if (!sbi->s_daxdev) { > + if (!dax_is_supported()) { > + ext2_msg(sb, KERN_ERR, > + "DAX unsupported by architecture. Turning off DAX."); > + clear_opt(sbi->s_mount_opt, DAX); > + } else if (!sbi->s_daxdev) { > ext2_msg(sb, KERN_ERR, > "DAX unsupported by block device. Turning off DAX."); > clear_opt(sbi->s_mount_opt, DAX); > -- > 2.39.2 > -- Jan Kara <jack@suse.com> SUSE Labs, CR ^ permalink raw reply [flat|nested] 3+ messages in thread
* [RFC PATCH v2 4/8] ext4: Use dax_is_supported() [not found] <20240130165255.212591-1-mathieu.desnoyers@efficios.com> 2024-01-30 16:52 ` [RFC PATCH v2 3/8] ext2: Use dax_is_supported() Mathieu Desnoyers @ 2024-01-30 16:52 ` Mathieu Desnoyers 1 sibling, 0 replies; 3+ messages in thread From: Mathieu Desnoyers @ 2024-01-30 16:52 UTC (permalink / raw) To: Dan Williams, Vishal Verma, Dave Jiang Cc: linux-kernel, Mathieu Desnoyers, Theodore Ts'o, Andreas Dilger, linux-ext4, Andrew Morton, Linus Torvalds, linux-mm, linux-arch, Matthew Wilcox, Arnd Bergmann, Russell King, nvdimm, linux-cxl, linux-fsdevel Use dax_is_supported() to validate whether the architecture has virtually aliased data caches at mount time. Mount fails if dax=always is requested as a mount option on an architecture which does not support DAX. This is relevant for architectures which require a dynamic check to validate whether they have virtually aliased data caches. Fixes: d92576f1167c ("dax: does not work correctly with virtual aliasing caches") Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: "Theodore Ts'o" <tytso@mit.edu> Cc: Andreas Dilger <adilger.kernel@dilger.ca> Cc: linux-ext4@vger.kernel.org Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: linux-mm@kvack.org Cc: linux-arch@vger.kernel.org Cc: Dan Williams <dan.j.williams@intel.com> Cc: Vishal Verma <vishal.l.verma@intel.com> Cc: Dave Jiang <dave.jiang@intel.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Russell King <linux@armlinux.org.uk> Cc: nvdimm@lists.linux.dev Cc: linux-cxl@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org --- fs/ext4/super.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index c5fcf377ab1f..f2c11ae3ec29 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -4743,7 +4743,10 @@ static int ext4_check_feature_compatibility(struct super_block *sb, } if (sbi->s_mount_opt & EXT4_MOUNT_DAX_ALWAYS) { - if (ext4_has_feature_inline_data(sb)) { + if (!dax_is_supported()) { + ext4_msg(sb, KERN_ERR, "DAX unsupported by architecture."); + return -EINVAL; + } else if (ext4_has_feature_inline_data(sb)) { ext4_msg(sb, KERN_ERR, "Cannot use DAX on a filesystem" " that may contain inline data"); return -EINVAL; -- 2.39.2 ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-01-30 21:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20240130165255.212591-1-mathieu.desnoyers@efficios.com>
2024-01-30 16:52 ` [RFC PATCH v2 3/8] ext2: Use dax_is_supported() Mathieu Desnoyers
2024-01-30 21:40 ` Jan Kara
2024-01-30 16:52 ` [RFC PATCH v2 4/8] ext4: " Mathieu Desnoyers
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox