All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Jan Kara <jack@suse.cz>
Cc: Mike Snitzer <snitzer@redhat.com>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	"dm-devel@redhat.com" <dm-devel@redhat.com>,
	Mikulas Patocka <mpatocka@redhat.com>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>
Subject: Re: Snapshot target and DAX-capable devices
Date: Wed, 5 Sep 2018 11:25:57 +1000	[thread overview]
Message-ID: <20180905012557.GE27618@dastard> (raw)
In-Reply-To: <20180831094255.GB11622@quack2.suse.cz>

On Fri, Aug 31, 2018 at 11:42:55AM +0200, Jan Kara wrote:
> On Fri 31-08-18 09:38:09, Dave Chinner wrote:
> > On Thu, Aug 30, 2018 at 03:47:32PM -0400, Mikulas Patocka wrote:
> > > You can't support dax on snapshot - if someone maps a block and the block 
> > > needs to be moved, then what?
> > 
> > This is only a problem for access via mmap and page faults.
....
> > It's a whole different ballgame for a dm-snapshot device - block
> > devices are completely unaware of page faults to DAX file mappings.
> 
> Actually, block devices are not completely unaware of DAX page faults -
> they will get ->direct_access callback for the fault range. It does not
> currently convey enough information - we also need to inform the block
> device whether it is read or write. But that's about all that's needed to
> add AFAICT. And by comparing returned PFN with the one we have stored in
> the radix tree (which we have if that file offset is mapped by anybody),
> the filesystem / DAX code can tell whether remapping happened and do the
> unmapping.

I forgot about the direct access call.

But it seems like a hack to redefine the simple, fast sector-to-pfn
translation into a slow and potentially resource hungry interface
for physical storage reallocation.  Doing storage layer COW
operations inside direct_access takes us straight back to the bad
ways of get_block() interfaces. We moved all the filesystem
allocation to iomap so that the storage management is separated from
the mm/physical address translation side of DAX - doing block device
storage management operations inside ->direct_access effectively
reverts that separation and so just seems like a hack to me.

Oh, right, DAX. Silly me. :/

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: Jan Kara <jack@suse.cz>
Cc: Mikulas Patocka <mpatocka@redhat.com>,
	Jeff Moyer <jmoyer@redhat.com>, Mike Snitzer <snitzer@redhat.com>,
	"Kani, Toshi" <toshi.kani@hpe.com>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	"dm-devel@redhat.com" <dm-devel@redhat.com>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	"ross.zwisler@linux.intel.com" <ross.zwisler@linux.intel.com>,
	"dan.j.williams@intel.com" <dan.j.williams@intel.com>
Subject: Re: Snapshot target and DAX-capable devices
Date: Wed, 5 Sep 2018 11:25:57 +1000	[thread overview]
Message-ID: <20180905012557.GE27618@dastard> (raw)
In-Reply-To: <20180831094255.GB11622@quack2.suse.cz>

On Fri, Aug 31, 2018 at 11:42:55AM +0200, Jan Kara wrote:
> On Fri 31-08-18 09:38:09, Dave Chinner wrote:
> > On Thu, Aug 30, 2018 at 03:47:32PM -0400, Mikulas Patocka wrote:
> > > You can't support dax on snapshot - if someone maps a block and the block 
> > > needs to be moved, then what?
> > 
> > This is only a problem for access via mmap and page faults.
....
> > It's a whole different ballgame for a dm-snapshot device - block
> > devices are completely unaware of page faults to DAX file mappings.
> 
> Actually, block devices are not completely unaware of DAX page faults -
> they will get ->direct_access callback for the fault range. It does not
> currently convey enough information - we also need to inform the block
> device whether it is read or write. But that's about all that's needed to
> add AFAICT. And by comparing returned PFN with the one we have stored in
> the radix tree (which we have if that file offset is mapped by anybody),
> the filesystem / DAX code can tell whether remapping happened and do the
> unmapping.

I forgot about the direct access call.

But it seems like a hack to redefine the simple, fast sector-to-pfn
translation into a slow and potentially resource hungry interface
for physical storage reallocation.  Doing storage layer COW
operations inside direct_access takes us straight back to the bad
ways of get_block() interfaces. We moved all the filesystem
allocation to iomap so that the storage management is separated from
the mm/physical address translation side of DAX - doing block device
storage management operations inside ->direct_access effectively
reverts that separation and so just seems like a hack to me.

Oh, right, DAX. Silly me. :/

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: Jan Kara <jack@suse.cz>
Cc: Mike Snitzer <snitzer@redhat.com>,
	"Kani, Toshi" <toshi.kani@hpe.com>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	"dm-devel@redhat.com" <dm-devel@redhat.com>,
	Jeff Moyer <jmoyer@redhat.com>,
	Mikulas Patocka <mpatocka@redhat.com>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	"ross.zwisler@linux.intel.com" <ross.zwisler@linux.intel.com>,
	"dan.j.williams@intel.com" <dan.j.williams@intel.com>
Subject: Re: Snapshot target and DAX-capable devices
Date: Wed, 5 Sep 2018 11:25:57 +1000	[thread overview]
Message-ID: <20180905012557.GE27618@dastard> (raw)
In-Reply-To: <20180831094255.GB11622@quack2.suse.cz>

On Fri, Aug 31, 2018 at 11:42:55AM +0200, Jan Kara wrote:
> On Fri 31-08-18 09:38:09, Dave Chinner wrote:
> > On Thu, Aug 30, 2018 at 03:47:32PM -0400, Mikulas Patocka wrote:
> > > You can't support dax on snapshot - if someone maps a block and the block 
> > > needs to be moved, then what?
> > 
> > This is only a problem for access via mmap and page faults.
....
> > It's a whole different ballgame for a dm-snapshot device - block
> > devices are completely unaware of page faults to DAX file mappings.
> 
> Actually, block devices are not completely unaware of DAX page faults -
> they will get ->direct_access callback for the fault range. It does not
> currently convey enough information - we also need to inform the block
> device whether it is read or write. But that's about all that's needed to
> add AFAICT. And by comparing returned PFN with the one we have stored in
> the radix tree (which we have if that file offset is mapped by anybody),
> the filesystem / DAX code can tell whether remapping happened and do the
> unmapping.

I forgot about the direct access call.

But it seems like a hack to redefine the simple, fast sector-to-pfn
translation into a slow and potentially resource hungry interface
for physical storage reallocation.  Doing storage layer COW
operations inside direct_access takes us straight back to the bad
ways of get_block() interfaces. We moved all the filesystem
allocation to iomap so that the storage management is separated from
the mm/physical address translation side of DAX - doing block device
storage management operations inside ->direct_access effectively
reverts that separation and so just seems like a hack to me.

Oh, right, DAX. Silly me. :/

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2018-09-05  1:26 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-27 16:07 Snapshot target and DAX-capable devices Jan Kara
2018-08-27 16:07 ` Jan Kara
2018-08-27 16:07 ` Jan Kara
2018-08-27 16:43 ` Kani, Toshi
2018-08-27 16:43   ` Kani, Toshi
2018-08-27 16:43   ` Kani, Toshi
2018-08-28  7:50   ` Jan Kara
2018-08-28  7:50     ` Jan Kara
2018-08-28  7:50     ` Jan Kara
2018-08-28 17:56     ` Mike Snitzer
2018-08-28 17:56       ` Mike Snitzer
2018-08-28 17:56       ` Mike Snitzer
2018-08-28 22:38       ` Kani, Toshi
2018-08-28 22:38         ` Kani, Toshi
2018-08-28 22:38         ` Kani, Toshi
2018-08-30  9:30       ` Jan Kara
2018-08-30  9:30         ` Jan Kara
2018-08-30  9:30         ` Jan Kara
2018-08-30 18:49         ` Mike Snitzer
2018-08-30 18:49           ` Mike Snitzer
2018-08-30 18:49           ` Mike Snitzer
2018-08-30 19:32           ` Jeff Moyer
2018-08-30 19:32             ` Jeff Moyer
2018-08-30 19:32             ` Jeff Moyer
2018-08-30 19:47             ` Mikulas Patocka
2018-08-30 19:47               ` Mikulas Patocka
2018-08-30 19:47               ` Mikulas Patocka
2018-08-30 19:53               ` Jeff Moyer
2018-08-30 19:53                 ` Jeff Moyer
2018-08-30 19:53                 ` Jeff Moyer
2018-08-30 23:38               ` Dave Chinner
2018-08-30 23:38                 ` Dave Chinner
2018-08-30 23:38                 ` Dave Chinner
2018-08-31  9:42                 ` Jan Kara
2018-08-31  9:42                   ` Jan Kara
2018-08-31  9:42                   ` Jan Kara
2018-09-05  1:25                   ` Dave Chinner [this message]
2018-09-05  1:25                     ` Dave Chinner
2018-09-05  1:25                     ` Dave Chinner
2018-12-12 16:11                   ` Huaisheng Ye
2018-12-12 16:11                     ` Huaisheng Ye
2018-12-12 16:11                     ` Huaisheng Ye
2018-12-12 16:12                     ` Christoph Hellwig
2018-12-12 16:12                       ` Christoph Hellwig
2018-12-12 16:12                       ` Christoph Hellwig
2018-12-12 17:50                       ` Mike Snitzer
2018-12-12 17:50                         ` Mike Snitzer
2018-12-12 17:50                         ` Mike Snitzer
2018-12-12 19:49                         ` Kani, Toshi
2018-12-12 19:49                           ` Kani, Toshi
2018-12-12 19:49                           ` Kani, Toshi
2018-12-12 21:15                         ` Theodore Y. Ts'o
2018-12-12 21:15                           ` Theodore Y. Ts'o
2018-12-12 22:43                           ` Mike Snitzer
2018-12-12 22:43                             ` Mike Snitzer
2018-12-12 22:43                             ` Mike Snitzer
2018-12-14  4:11                             ` [dm-devel] " Theodore Y. Ts'o
2018-12-14  4:11                               ` Theodore Y. Ts'o
2018-12-14  4:11                               ` Theodore Y. Ts'o
2018-12-14  8:24                             ` [External] " Huaisheng HS1 Ye
2018-12-14  8:24                               ` Huaisheng HS1 Ye
2018-12-14  8:24                               ` Huaisheng HS1 Ye
2018-12-18 19:49                               ` Mike Snitzer
2018-12-18 19:49                                 ` Mike Snitzer
2018-12-18 19:49                                 ` Mike Snitzer
2018-08-30 19:44           ` Mikulas Patocka
2018-08-30 19:44             ` Mikulas Patocka
2018-08-30 19:44             ` Mikulas Patocka
2018-08-31 10:01             ` Jan Kara
2018-08-31 10:01               ` Jan Kara
2018-08-31 10:01               ` Jan Kara
2018-08-30 22:55           ` Dave Chinner
2018-08-30 22:55             ` Dave Chinner
2018-08-30 22:55             ` Dave Chinner
2018-08-31  9:54           ` Jan Kara
2018-08-31  9:54             ` Jan Kara
2018-08-31  9:54             ` Jan Kara
2018-08-30 19:17         ` [dm-devel] " Jeff Moyer
2018-08-30 19:17           ` Jeff Moyer
2018-08-30 19:17           ` Jeff Moyer
2018-08-31  9:14           ` Jan Kara
2018-08-31  9:14             ` Jan Kara
2018-08-31  9:14             ` Jan Kara

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=20180905012557.GE27618@dastard \
    --to=david@fromorbit.com \
    --cc=dm-devel@redhat.com \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=mpatocka@redhat.com \
    --cc=snitzer@redhat.com \
    /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.