All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Mike Snitzer <snitzer@redhat.com>,
	Matthew Wilcox <mawilcox@microsoft.com>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	linux-block@vger.kernel.org,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Christoph Hellwig <hch@lst.de>
Subject: Re: [RFC PATCH 10/17] block: introduce bdev_dax_direct_access()
Date: Wed, 1 Feb 2017 09:10:20 +0100	[thread overview]
Message-ID: <20170201081020.GD29170@lst.de> (raw)
In-Reply-To: <CAPcyv4iARmZQSBybJ1iJhwkndVxSe62rk4hjP1T9prBuOqVQ-A@mail.gmail.com>

On Mon, Jan 30, 2017 at 10:16:29AM -0800, Dan Williams wrote:
> Ok, now that dax_map_atomic() is gone, it's much easier to remove
> struct blk_dax_ctl.
> 
> We can also move the partition alignment checks to be a one-time check
> at bdev_dax_capable() time and kill bdev_dax_direct_access() in favor
> of calling dax_direct_access() directly.

Yes, please.

> >> +     if ((sector + DIV_ROUND_UP(dax->size, 512))
> >> +                     > part_nr_sects_read(bdev->bd_part))
> >> +             return -ERANGE;
> >> +     sector += get_start_sect(bdev);
> >> +     return dax_direct_access(dax_inode, sector * 512, &dax->addr,
> >> +                     &dax->pfn, dax->size);
> >
> > And please switch to using bytes as the granularity given that we're
> > deadling with byte addressable memory.
> 
> dax_direct_access() does take a byte aligned physical address, but it
> needs to be at least page aligned since we are returning a pfn_t...
> 
> Hmm, perhaps the input should be raw page frame number. We could
> reduce one of the arguments by making the current 'pfn_t *' parameter
> an in/out-parameter.

In/Out parameters are always a bit problematic in terms of API clarity.
And updating a device-relative address with an absolute physical one
sounds like an odd API for sure.
_______________________________________________
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: Christoph Hellwig <hch@lst.de>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Christoph Hellwig <hch@lst.de>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	Mike Snitzer <snitzer@redhat.com>,
	Toshi Kani <toshi.kani@hpe.com>,
	Matthew Wilcox <mawilcox@microsoft.com>,
	linux-block@vger.kernel.org, jmoyer <jmoyer@redhat.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Ross Zwisler <ross.zwisler@linux.intel.com>
Subject: Re: [RFC PATCH 10/17] block: introduce bdev_dax_direct_access()
Date: Wed, 1 Feb 2017 09:10:20 +0100	[thread overview]
Message-ID: <20170201081020.GD29170@lst.de> (raw)
In-Reply-To: <CAPcyv4iARmZQSBybJ1iJhwkndVxSe62rk4hjP1T9prBuOqVQ-A@mail.gmail.com>

On Mon, Jan 30, 2017 at 10:16:29AM -0800, Dan Williams wrote:
> Ok, now that dax_map_atomic() is gone, it's much easier to remove
> struct blk_dax_ctl.
> 
> We can also move the partition alignment checks to be a one-time check
> at bdev_dax_capable() time and kill bdev_dax_direct_access() in favor
> of calling dax_direct_access() directly.

Yes, please.

> >> +     if ((sector + DIV_ROUND_UP(dax->size, 512))
> >> +                     > part_nr_sects_read(bdev->bd_part))
> >> +             return -ERANGE;
> >> +     sector += get_start_sect(bdev);
> >> +     return dax_direct_access(dax_inode, sector * 512, &dax->addr,
> >> +                     &dax->pfn, dax->size);
> >
> > And please switch to using bytes as the granularity given that we're
> > deadling with byte addressable memory.
> 
> dax_direct_access() does take a byte aligned physical address, but it
> needs to be at least page aligned since we are returning a pfn_t...
> 
> Hmm, perhaps the input should be raw page frame number. We could
> reduce one of the arguments by making the current 'pfn_t *' parameter
> an in/out-parameter.

In/Out parameters are always a bit problematic in terms of API clarity.
And updating a device-relative address with an absolute physical one
sounds like an odd API for sure.

  reply	other threads:[~2017-02-01  8:10 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-28  8:36 [RFC PATCH 00/17] introduce a dax_inode for dax_operations Dan Williams
2017-01-28  8:36 ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 01/17] dax: refactor dax-fs into a generic provider of dax inodes Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-30 12:28   ` Christoph Hellwig
2017-01-30 17:12     ` Dan Williams
2017-01-30 17:12       ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 02/17] dax: convert dax_inode locking to srcu Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 03/17] dax: add a facility to lookup a dax inode by 'host' device name Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 04/17] dax: introduce dax_operations Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 05/17] pmem: add dax_operations support Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 06/17] axon_ram: " Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 07/17] brd: " Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 08/17] dcssblk: " Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 09/17] block: kill bdev_dax_capable() Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-28  8:36 ` [RFC PATCH 10/17] block: introduce bdev_dax_direct_access() Dan Williams
2017-01-28  8:36   ` Dan Williams
2017-01-30 12:32   ` Christoph Hellwig
2017-01-30 18:16     ` Dan Williams
2017-01-30 18:16       ` Dan Williams
2017-02-01  8:10       ` Christoph Hellwig [this message]
2017-02-01  8:10         ` Christoph Hellwig
2017-02-01  9:21         ` Dan Williams
2017-02-01  9:21           ` Dan Williams
2017-02-01  9:28           ` Christoph Hellwig
2017-02-01  9:28             ` Christoph Hellwig
2017-01-28  8:37 ` [RFC PATCH 11/17] dm: add dax_operations support (producer) Dan Williams
2017-01-28  8:37   ` Dan Williams
2017-01-28  8:37 ` [RFC PATCH 12/17] dm: add dax_operations support (consumer) Dan Williams
2017-01-28  8:37   ` Dan Williams
2017-01-28  8:37 ` [RFC PATCH 13/17] fs: update mount_bdev() to lookup dax infrastructure Dan Williams
2017-01-28  8:37   ` Dan Williams
2017-01-30 12:26   ` Christoph Hellwig
2017-01-30 18:29     ` Dan Williams
2017-01-30 18:29       ` Dan Williams
2017-02-01  8:08       ` Christoph Hellwig
2017-02-01  8:08         ` Christoph Hellwig
2017-02-01  9:16         ` Dan Williams
2017-02-01  9:16           ` Dan Williams
2017-01-28  8:37 ` [RFC PATCH 14/17] ext2, ext4, xfs: retrieve dax_inode through iomap operations Dan Williams
2017-01-28  8:37   ` Dan Williams
2017-01-28  8:37 ` [RFC PATCH 15/17] Revert "block: use DAX for partition table reads" Dan Williams
2017-01-28  8:37   ` Dan Williams
2017-01-28  8:37 ` [RFC PATCH 16/17] fs, dax: convert filesystem-dax to bdev_dax_direct_access Dan Williams
2017-01-28  8:37   ` Dan Williams
2017-01-28  8:37 ` [RFC PATCH 17/17] block: remove block_device_operations.direct_access and related infrastructure Dan Williams
2017-01-28  8:37   ` Dan Williams

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=20170201081020.GD29170@lst.de \
    --to=hch@lst.de \
    --cc=dan.j.williams@intel.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=mawilcox@microsoft.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.