All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Theodore Ts'o" <tytso@mit.edu>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	Mike Snitzer <snitzer@redhat.com>,
	linux-s390 <linux-s390@vger.kernel.org>,
	linux-erofs@lists.ozlabs.org, Eric Sandeen <sandeen@sandeen.net>,
	virtualization@lists.linux-foundation.org,
	linux-xfs <linux-xfs@vger.kernel.org>,
	device-mapper development <dm-devel@redhat.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Dan Williams <dan.j.williams@intel.com>,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	Ira Weiny <ira.weiny@intel.com>, Christoph Hellwig <hch@lst.de>
Subject: Re: futher decouple DAX from block devices
Date: Thu, 4 Nov 2021 23:09:19 -0400	[thread overview]
Message-ID: <YYSgX9FI0kaGLeR0@mit.edu> (raw)
In-Reply-To: <20211104190443.GK24333@magnolia>

On Thu, Nov 04, 2021 at 12:04:43PM -0700, Darrick J. Wong wrote:
> > Note that I've avoided implementing read/write fops for dax devices
> > partly out of concern for not wanting to figure out shared-mmap vs
> > write coherence issues, but also because of a bet with Dave Hansen
> > that device-dax not grow features like what happened to hugetlbfs. So
> > it would seem mkfs would need to switch to mmap I/O, or bite the
> > bullet and implement read/write fops in the driver.
> 
> That ... would require a fair amount of userspace changes, though at
> least e2fsprogs has pluggable io drivers, which would make mmapping a
> character device not too awful.
> 
> xfsprogs would be another story -- porting the buffer cache mignt not be
> too bad, but mkfs and repair seem to issue pread/pwrite calls directly.
> Note that xfsprogs explicitly screens out chardevs.

It's not just e2fsprogs and xfsprogs.  There's also udev, blkid,
potententially systemd unit generators to kick off fsck runs, etc.
There are probably any number of user scripts which assume that file
systems are mounted on block devices --- for example, by looking at
the output of lsblk, etc.

Also note that block devices have O_EXCL support to provide locking
against attempts to run mkfs on a mounted file system.  If you move
dax file systems to be mounted on a character mode device, that would
have to be replicated as well, etc.  So I suspect that a large number
of subtle things would break, and I'd strongly recommend against going
down that path.

						- Ted
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

WARNING: multiple messages have this Message-ID (diff)
From: "Theodore Ts'o" <tytso@mit.edu>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>,
	Christoph Hellwig <hch@lst.de>,
	Eric Sandeen <sandeen@sandeen.net>,
	Mike Snitzer <snitzer@redhat.com>,
	Ira Weiny <ira.weiny@intel.com>,
	device-mapper development <dm-devel@redhat.com>,
	linux-xfs <linux-xfs@vger.kernel.org>,
	Linux NVDIMM <nvdimm@lists.linux.dev>,
	linux-s390 <linux-s390@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-erofs@lists.ozlabs.org,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	virtualization@lists.linux-foundation.org
Subject: Re: futher decouple DAX from block devices
Date: Thu, 4 Nov 2021 23:09:19 -0400	[thread overview]
Message-ID: <YYSgX9FI0kaGLeR0@mit.edu> (raw)
In-Reply-To: <20211104190443.GK24333@magnolia>

On Thu, Nov 04, 2021 at 12:04:43PM -0700, Darrick J. Wong wrote:
> > Note that I've avoided implementing read/write fops for dax devices
> > partly out of concern for not wanting to figure out shared-mmap vs
> > write coherence issues, but also because of a bet with Dave Hansen
> > that device-dax not grow features like what happened to hugetlbfs. So
> > it would seem mkfs would need to switch to mmap I/O, or bite the
> > bullet and implement read/write fops in the driver.
> 
> That ... would require a fair amount of userspace changes, though at
> least e2fsprogs has pluggable io drivers, which would make mmapping a
> character device not too awful.
> 
> xfsprogs would be another story -- porting the buffer cache mignt not be
> too bad, but mkfs and repair seem to issue pread/pwrite calls directly.
> Note that xfsprogs explicitly screens out chardevs.

It's not just e2fsprogs and xfsprogs.  There's also udev, blkid,
potententially systemd unit generators to kick off fsck runs, etc.
There are probably any number of user scripts which assume that file
systems are mounted on block devices --- for example, by looking at
the output of lsblk, etc.

Also note that block devices have O_EXCL support to provide locking
against attempts to run mkfs on a mounted file system.  If you move
dax file systems to be mounted on a character mode device, that would
have to be replicated as well, etc.  So I suspect that a large number
of subtle things would break, and I'd strongly recommend against going
down that path.

						- Ted

WARNING: multiple messages have this Message-ID (diff)
From: "Theodore Ts'o" <tytso@mit.edu>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	Mike Snitzer <snitzer@redhat.com>,
	linux-s390 <linux-s390@vger.kernel.org>,
	linux-erofs@lists.ozlabs.org, Eric Sandeen <sandeen@sandeen.net>,
	virtualization@lists.linux-foundation.org,
	linux-xfs <linux-xfs@vger.kernel.org>,
	device-mapper development <dm-devel@redhat.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Dan Williams <dan.j.williams@intel.com>,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	Ira Weiny <ira.weiny@intel.com>, Christoph Hellwig <hch@lst.de>
Subject: Re: [dm-devel] futher decouple DAX from block devices
Date: Thu, 4 Nov 2021 23:09:19 -0400	[thread overview]
Message-ID: <YYSgX9FI0kaGLeR0@mit.edu> (raw)
In-Reply-To: <20211104190443.GK24333@magnolia>

On Thu, Nov 04, 2021 at 12:04:43PM -0700, Darrick J. Wong wrote:
> > Note that I've avoided implementing read/write fops for dax devices
> > partly out of concern for not wanting to figure out shared-mmap vs
> > write coherence issues, but also because of a bet with Dave Hansen
> > that device-dax not grow features like what happened to hugetlbfs. So
> > it would seem mkfs would need to switch to mmap I/O, or bite the
> > bullet and implement read/write fops in the driver.
> 
> That ... would require a fair amount of userspace changes, though at
> least e2fsprogs has pluggable io drivers, which would make mmapping a
> character device not too awful.
> 
> xfsprogs would be another story -- porting the buffer cache mignt not be
> too bad, but mkfs and repair seem to issue pread/pwrite calls directly.
> Note that xfsprogs explicitly screens out chardevs.

It's not just e2fsprogs and xfsprogs.  There's also udev, blkid,
potententially systemd unit generators to kick off fsck runs, etc.
There are probably any number of user scripts which assume that file
systems are mounted on block devices --- for example, by looking at
the output of lsblk, etc.

Also note that block devices have O_EXCL support to provide locking
against attempts to run mkfs on a mounted file system.  If you move
dax file systems to be mounted on a character mode device, that would
have to be replicated as well, etc.  So I suspect that a large number
of subtle things would break, and I'd strongly recommend against going
down that path.

						- Ted

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel


WARNING: multiple messages have this Message-ID (diff)
From: "Theodore Ts'o" <tytso@mit.edu>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	Mike Snitzer <snitzer@redhat.com>,
	linux-s390 <linux-s390@vger.kernel.org>,
	linux-erofs@lists.ozlabs.org, Eric Sandeen <sandeen@sandeen.net>,
	virtualization@lists.linux-foundation.org,
	linux-xfs <linux-xfs@vger.kernel.org>,
	device-mapper development <dm-devel@redhat.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Dan Williams <dan.j.williams@intel.com>,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	Ira Weiny <ira.weiny@intel.com>, Christoph Hellwig <hch@lst.de>
Subject: Re: futher decouple DAX from block devices
Date: Thu, 4 Nov 2021 23:09:19 -0400	[thread overview]
Message-ID: <YYSgX9FI0kaGLeR0@mit.edu> (raw)
In-Reply-To: <20211104190443.GK24333@magnolia>

On Thu, Nov 04, 2021 at 12:04:43PM -0700, Darrick J. Wong wrote:
> > Note that I've avoided implementing read/write fops for dax devices
> > partly out of concern for not wanting to figure out shared-mmap vs
> > write coherence issues, but also because of a bet with Dave Hansen
> > that device-dax not grow features like what happened to hugetlbfs. So
> > it would seem mkfs would need to switch to mmap I/O, or bite the
> > bullet and implement read/write fops in the driver.
> 
> That ... would require a fair amount of userspace changes, though at
> least e2fsprogs has pluggable io drivers, which would make mmapping a
> character device not too awful.
> 
> xfsprogs would be another story -- porting the buffer cache mignt not be
> too bad, but mkfs and repair seem to issue pread/pwrite calls directly.
> Note that xfsprogs explicitly screens out chardevs.

It's not just e2fsprogs and xfsprogs.  There's also udev, blkid,
potententially systemd unit generators to kick off fsck runs, etc.
There are probably any number of user scripts which assume that file
systems are mounted on block devices --- for example, by looking at
the output of lsblk, etc.

Also note that block devices have O_EXCL support to provide locking
against attempts to run mkfs on a mounted file system.  If you move
dax file systems to be mounted on a character mode device, that would
have to be replicated as well, etc.  So I suspect that a large number
of subtle things would break, and I'd strongly recommend against going
down that path.

						- Ted

  reply	other threads:[~2021-11-05  3:09 UTC|newest]

Thread overview: 197+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-18  4:40 futher decouple DAX from block devices Christoph Hellwig
2021-10-18  4:40 ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40 ` Christoph Hellwig
2021-10-18  4:40 ` Christoph Hellwig
2021-10-18  4:40 ` Christoph Hellwig
2021-10-18  4:40 ` [PATCH 01/11] dm: make the DAX support dependend on CONFIG_FS_DAX Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 20:53   ` Dan Williams
2021-10-27 20:53     ` [dm-devel] " Dan Williams
2021-10-27 20:53     ` Dan Williams
2021-10-27 20:53     ` Dan Williams
2021-11-01 16:12     ` Mike Snitzer
2021-11-01 16:12       ` Mike Snitzer
2021-11-01 16:12       ` [dm-devel] " Mike Snitzer
2021-11-01 16:12       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 02/11] dax: remove CONFIG_DAX_DRIVER Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 20:54   ` Dan Williams
2021-10-27 20:54     ` [dm-devel] " Dan Williams
2021-10-27 20:54     ` Dan Williams
2021-10-27 20:54     ` Dan Williams
2021-10-18  4:40 ` [PATCH 03/11] dax: simplify the dax_device <-> gendisk association Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 22:03   ` Dan Williams
2021-10-27 22:03     ` [dm-devel] " Dan Williams
2021-10-27 22:03     ` Dan Williams
2021-10-27 22:03     ` Dan Williams
2021-10-29  4:57   ` Ira Weiny
2021-10-29  4:57     ` [dm-devel] " Ira Weiny
2021-10-29  4:57     ` Ira Weiny
2021-10-29  4:57     ` Ira Weiny
2021-11-01 16:28   ` Mike Snitzer
2021-11-01 16:28     ` [dm-devel] " Mike Snitzer
2021-11-01 16:28     ` Mike Snitzer
2021-11-01 16:28     ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 04/11] dax: remove the pgmap sanity checks in generic_fsdax_supported Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 23:02   ` Dan Williams
2021-10-27 23:02     ` Dan Williams
2021-10-27 23:02     ` [dm-devel] " Dan Williams
2021-10-27 23:02     ` Dan Williams
2021-10-18  4:40 ` [PATCH 05/11] dax: move the partition alignment check into fs_dax_get_by_bdev Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 23:07   ` Dan Williams
2021-10-27 23:07     ` Dan Williams
2021-10-27 23:07     ` [dm-devel] " Dan Williams
2021-10-27 23:07     ` Dan Williams
2021-10-18  4:40 ` [PATCH 06/11] xfs: factor out a xfs_setup_dax helper Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18 16:43   ` Darrick J. Wong
2021-10-18 16:43     ` [dm-devel] " Darrick J. Wong
2021-10-18 16:43     ` Darrick J. Wong
2021-10-19  7:23     ` Christoph Hellwig
2021-10-19  7:23       ` Christoph Hellwig
2021-10-19  7:23       ` [dm-devel] " Christoph Hellwig
2021-10-19  7:23       ` Christoph Hellwig
2021-10-27 23:37       ` Dan Williams
2021-10-27 23:37         ` [dm-devel] " Dan Williams
2021-10-27 23:37         ` Dan Williams
2021-10-27 23:37         ` Dan Williams
2021-10-18  4:40 ` [PATCH 07/11] dax: remove dax_capable Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18 12:25   ` Gao Xiang
2021-10-18 12:25     ` [dm-devel] " Gao Xiang
2021-10-18 12:25     ` Gao Xiang
2021-10-19 15:44   ` [dm-devel] " Darrick J. Wong
2021-10-19 15:44     ` Darrick J. Wong
2021-10-19 15:44     ` Darrick J. Wong
2021-10-28  0:20     ` Dan Williams
2021-10-28  0:20       ` Dan Williams
2021-10-28  0:20       ` Dan Williams
2021-10-28  0:20       ` Dan Williams
2021-10-28  0:16   ` Dan Williams
2021-10-28  0:16     ` [dm-devel] " Dan Williams
2021-10-28  0:16     ` Dan Williams
2021-10-28  0:16     ` Dan Williams
2021-11-01 16:17     ` Mike Snitzer
2021-11-01 16:17       ` [dm-devel] " Mike Snitzer
2021-11-01 16:17       ` Mike Snitzer
2021-11-01 16:17       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 08/11] dm-linear: add a linear_dax_pgoff helper Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-28  1:32   ` Dan Williams
2021-10-28  1:32     ` [dm-devel] " Dan Williams
2021-10-28  1:32     ` Dan Williams
2021-10-28  1:32     ` Dan Williams
2021-11-01 16:18     ` Mike Snitzer
2021-11-01 16:18       ` [dm-devel] " Mike Snitzer
2021-11-01 16:18       ` Mike Snitzer
2021-11-01 16:18       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 09/11] dm-log-writes: add a log_writes_dax_pgoff helper Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-28  1:36   ` Dan Williams
2021-10-28  1:36     ` [dm-devel] " Dan Williams
2021-10-28  1:36     ` Dan Williams
2021-10-28  1:36     ` Dan Williams
2021-11-01 16:19     ` Mike Snitzer
2021-11-01 16:19       ` [dm-devel] " Mike Snitzer
2021-11-01 16:19       ` Mike Snitzer
2021-11-01 16:19       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 10/11] dm-stripe: add a stripe_dax_pgoff helper Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-28  1:41   ` Dan Williams
2021-10-28  1:41     ` [dm-devel] " Dan Williams
2021-10-28  1:41     ` Dan Williams
2021-10-28  1:41     ` Dan Williams
2021-11-01 16:21     ` Mike Snitzer
2021-11-01 16:21       ` [dm-devel] " Mike Snitzer
2021-11-01 16:21       ` Mike Snitzer
2021-11-01 16:21       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 11/11] dax: move bdev_dax_pgoff to fs/dax.c Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-28  1:44   ` Dan Williams
2021-10-28  1:44     ` [dm-devel] " Dan Williams
2021-10-28  1:44     ` Dan Williams
2021-10-28  1:44     ` Dan Williams
2021-10-27 20:46 ` futher decouple DAX from block devices Dan Williams
2021-10-27 20:46   ` [dm-devel] " Dan Williams
2021-10-27 20:46   ` Dan Williams
2021-10-27 20:46   ` Dan Williams
2021-10-28 23:51   ` Stephen Rothwell
2021-10-28 23:51     ` [dm-devel] " Stephen Rothwell
2021-10-28 23:51     ` Stephen Rothwell
2021-10-28 23:51     ` Stephen Rothwell
2021-10-29 15:42     ` Dan Williams
2021-10-29 15:42       ` [dm-devel] " Dan Williams
2021-10-29 15:42       ` Dan Williams
2021-10-29 15:42       ` Dan Williams
2021-10-29 15:55       ` Darrick J. Wong
2021-10-29 15:55         ` [dm-devel] " Darrick J. Wong
2021-10-29 15:55         ` Darrick J. Wong
2021-10-29 16:16         ` Dan Williams
2021-10-29 16:16           ` Dan Williams
2021-10-29 16:16           ` [dm-devel] " Dan Williams
2021-10-29 16:16           ` Dan Williams
2021-11-03 17:59 ` Eric Sandeen
2021-11-03 17:59   ` [dm-devel] " Eric Sandeen
2021-11-03 17:59   ` Eric Sandeen
2021-11-04  8:17   ` Christoph Hellwig
2021-11-04  8:17     ` [dm-devel] " Christoph Hellwig
2021-11-04  8:17     ` Christoph Hellwig
2021-11-04  8:17     ` Christoph Hellwig
2021-11-04 17:34     ` Darrick J. Wong
2021-11-04 17:34       ` [dm-devel] " Darrick J. Wong
2021-11-04 17:34       ` Darrick J. Wong
2021-11-04 17:35       ` Christoph Hellwig
2021-11-04 17:35         ` [dm-devel] " Christoph Hellwig
2021-11-04 17:35         ` Christoph Hellwig
2021-11-04 17:35         ` Christoph Hellwig
2021-11-04 18:10         ` Dan Williams
2021-11-04 18:10           ` Dan Williams
2021-11-04 18:10           ` Dan Williams
2021-11-04 18:10           ` [dm-devel] " Dan Williams
2021-11-04 19:04           ` Darrick J. Wong
2021-11-04 19:04             ` [dm-devel] " Darrick J. Wong
2021-11-04 19:04             ` Darrick J. Wong
2021-11-05  3:09             ` Theodore Ts'o [this message]
2021-11-05  3:09               ` Theodore Ts'o
2021-11-05  3:09               ` [dm-devel] " Theodore Ts'o
2021-11-05  3:09               ` Theodore Ts'o
2021-11-05  3:30               ` Matthew Wilcox
2021-11-05  3:30                 ` Matthew Wilcox
2021-11-05  3:30                 ` Matthew Wilcox
2021-11-05  3:30                 ` [dm-devel] " Matthew Wilcox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YYSgX9FI0kaGLeR0@mit.edu \
    --to=tytso@mit.edu \
    --cc=dan.j.williams@intel.com \
    --cc=djwong@kernel.org \
    --cc=dm-devel@redhat.com \
    --cc=hch@lst.de \
    --cc=ira.weiny@intel.com \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=nvdimm@lists.linux.dev \
    --cc=sandeen@sandeen.net \
    --cc=snitzer@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.