Messages in this thread Patch in this message | | | From | "Kani, Toshimitsu" <> | Subject | Re: [PATCH v2 1/3] block: add QUEUE_FLAG_DAX for devices to advertise their DAX support | Date | Thu, 23 Jun 2016 17:36:29 +0000 |
| |
On Thu, 2016-06-23 at 19:31 +0300, Yigal Korman wrote: > On Thu, Jun 23, 2016 at 2:54 AM, Toshi Kani <toshi.kani@hpe.com> wrote: > > > > > > Currently, presence of direct_access() in block_device_operations > > indicates support of DAX on its block device. Because > > block_device_operations is instantiated with 'const', this DAX > > capablity may not be enabled conditinally. > > > > In preparation for supporting DAX to device-mapper devices, add > > QUEUE_FLAG_DAX to request_queue flags to advertise their DAX > > support. This will allow to set the DAX capability based on how > > mapped device is composed. > > Hi Toshi, > This patch is very helpful! > I think QUEUE_FLAG_DAX can also help with identifying dax devices in > userspace. > Perhaps you'd be willing to squash the patch below with this one or > add it to your submission?
Hi Yigal,
Good idea. Mike can probably take it into his tree, but I will include it into the series if I needed to submit v3.
Acked-by: Toshi Kani <toshi.kani@hpe.com>
I have one minor comment below.
> [PATCH] block: expose QUEUE_FLAG_DAX in sysfs > > There's currently no way to identify DAX enabled devices in userspace. > > Signed-off-by: Yigal Korman <yigal@plexistor.com> > --- > block/blk-sysfs.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c > index 9920596..d55126d 100644 > --- a/block/blk-sysfs.c > +++ b/block/blk-sysfs.c > @@ -379,6 +379,15 @@ static ssize_t queue_wc_store(struct > request_queue *q, const char *page, > return count; > } > > +static ssize_t queue_dax_show(struct request_queue *q, char *page) > +{ > + int bit; > + > + bit = test_bit(QUEUE_FLAG_DAX, &q->queue_flags); > + > + return queue_var_show(bit, page);
This can be: return queue_var_show(blk_queue_dax(q), page);
Thanks, -Toshi
> +} > + > static struct queue_sysfs_entry queue_requests_entry = { > .attr = {.name = "nr_requests", .mode = S_IRUGO | S_IWUSR }, > .show = queue_requests_show, > @@ -516,6 +525,11 @@ static struct queue_sysfs_entry queue_wc_entry = { > .store = queue_wc_store, > }; > > +static struct queue_sysfs_entry queue_dax_entry = { > + .attr = {.name = "dax", .mode = S_IRUGO }, > + .show = queue_dax_show, > +}; > + > static struct attribute *default_attrs[] = { > &queue_requests_entry.attr, > &queue_ra_entry.attr, > @@ -542,6 +556,7 @@ static struct attribute *default_attrs[] = { > &queue_random_entry.attr, > &queue_poll_entry.attr, > &queue_wc_entry.attr, > + &queue_dax_entry.attr, > NULL, > }; >
| |