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@xxxxxxx> 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@xxxxxxx> 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@xxxxxxxxxxxxx> > --- > 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, > }; > -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel