* [PATCH] dm stripe: add DAX support
@ 2016-06-24 18:23 ` Toshi Kani
0 siblings, 0 replies; 26+ messages in thread
From: Toshi Kani @ 2016-06-24 18:23 UTC (permalink / raw)
To: snitzer; +Cc: linux-nvdimm, linux-kernel, linux-raid, dm-devel, Alasdair Kergon
Change dm-stripe to implement direct_access function,
stripe_direct_access(), which maps bdev and sector and
calls direct_access function of its physical target device.
Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
---
drivers/md/dm-stripe.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index 48f1c01..8925f6a 100644
--- a/drivers/md/dm-stripe.c
+++ b/drivers/md/dm-stripe.c
@@ -308,6 +308,30 @@ static int stripe_map(struct dm_target *ti, struct bio *bio)
return DM_MAPIO_REMAPPED;
}
+static long stripe_direct_access(struct dm_target *ti, sector_t sector,
+ void __pmem **kaddr, pfn_t *pfn, long size)
+{
+ struct stripe_c *sc;
+ struct block_device *bdev;
+ uint32_t stripe;
+ struct blk_dax_ctl dax = {
+ .size = size,
+ };
+ long ret;
+
+ sc = ti->private;
+ stripe_map_sector(sc, sector, &stripe, &dax.sector);
+
+ dax.sector += sc->stripe[stripe].physical_start;
+ bdev = sc->stripe[stripe].dev->bdev;
+
+ ret = bdev_direct_access(bdev, &dax);
+ *kaddr = dax.addr;
+ *pfn = dax.pfn;
+
+ return ret;
+}
+
/*
* Stripe status:
*
@@ -425,6 +449,7 @@ static struct target_type stripe_target = {
.status = stripe_status,
.iterate_devices = stripe_iterate_devices,
.io_hints = stripe_io_hints,
+ .direct_access = stripe_direct_access,
};
int __init dm_stripe_init(void)
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH] dm stripe: add DAX support
@ 2016-06-24 18:23 ` Toshi Kani
0 siblings, 0 replies; 26+ messages in thread
From: Toshi Kani @ 2016-06-24 18:23 UTC (permalink / raw)
To: snitzer-H+wXaHxf7aLQT0dZR+AlfA
Cc: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, Alasdair Kergon
Change dm-stripe to implement direct_access function,
stripe_direct_access(), which maps bdev and sector and
calls direct_access function of its physical target device.
Signed-off-by: Toshi Kani <toshi.kani-ZPxbGqLxI0U@public.gmane.org>
Cc: Alasdair Kergon <agk-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Dan Williams <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Ross Zwisler <ross.zwisler-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
---
drivers/md/dm-stripe.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index 48f1c01..8925f6a 100644
--- a/drivers/md/dm-stripe.c
+++ b/drivers/md/dm-stripe.c
@@ -308,6 +308,30 @@ static int stripe_map(struct dm_target *ti, struct bio *bio)
return DM_MAPIO_REMAPPED;
}
+static long stripe_direct_access(struct dm_target *ti, sector_t sector,
+ void __pmem **kaddr, pfn_t *pfn, long size)
+{
+ struct stripe_c *sc;
+ struct block_device *bdev;
+ uint32_t stripe;
+ struct blk_dax_ctl dax = {
+ .size = size,
+ };
+ long ret;
+
+ sc = ti->private;
+ stripe_map_sector(sc, sector, &stripe, &dax.sector);
+
+ dax.sector += sc->stripe[stripe].physical_start;
+ bdev = sc->stripe[stripe].dev->bdev;
+
+ ret = bdev_direct_access(bdev, &dax);
+ *kaddr = dax.addr;
+ *pfn = dax.pfn;
+
+ return ret;
+}
+
/*
* Stripe status:
*
@@ -425,6 +449,7 @@ static struct target_type stripe_target = {
.status = stripe_status,
.iterate_devices = stripe_iterate_devices,
.io_hints = stripe_io_hints,
+ .direct_access = stripe_direct_access,
};
int __init dm_stripe_init(void)
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH] dm stripe: add DAX support
@ 2016-06-24 18:23 ` Toshi Kani
0 siblings, 0 replies; 26+ messages in thread
From: Toshi Kani @ 2016-06-24 18:23 UTC (permalink / raw)
To: snitzer
Cc: linux-nvdimm, dm-devel, linux-raid, linux-kernel, Toshi Kani,
Alasdair Kergon, Dan Williams, Ross Zwisler
Change dm-stripe to implement direct_access function,
stripe_direct_access(), which maps bdev and sector and
calls direct_access function of its physical target device.
Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
---
drivers/md/dm-stripe.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index 48f1c01..8925f6a 100644
--- a/drivers/md/dm-stripe.c
+++ b/drivers/md/dm-stripe.c
@@ -308,6 +308,30 @@ static int stripe_map(struct dm_target *ti, struct bio *bio)
return DM_MAPIO_REMAPPED;
}
+static long stripe_direct_access(struct dm_target *ti, sector_t sector,
+ void __pmem **kaddr, pfn_t *pfn, long size)
+{
+ struct stripe_c *sc;
+ struct block_device *bdev;
+ uint32_t stripe;
+ struct blk_dax_ctl dax = {
+ .size = size,
+ };
+ long ret;
+
+ sc = ti->private;
+ stripe_map_sector(sc, sector, &stripe, &dax.sector);
+
+ dax.sector += sc->stripe[stripe].physical_start;
+ bdev = sc->stripe[stripe].dev->bdev;
+
+ ret = bdev_direct_access(bdev, &dax);
+ *kaddr = dax.addr;
+ *pfn = dax.pfn;
+
+ return ret;
+}
+
/*
* Stripe status:
*
@@ -425,6 +449,7 @@ static struct target_type stripe_target = {
.status = stripe_status,
.iterate_devices = stripe_iterate_devices,
.io_hints = stripe_io_hints,
+ .direct_access = stripe_direct_access,
};
int __init dm_stripe_init(void)
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-06-24 18:23 ` Toshi Kani
(?)
(?)
@ 2016-06-24 18:29 ` Mike Snitzer
[not found] ` <20160624182859.GD13898-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
-1 siblings, 1 reply; 26+ messages in thread
From: Mike Snitzer @ 2016-06-24 18:29 UTC (permalink / raw)
To: Toshi Kani
Cc: linux-nvdimm, linux-kernel, linux-raid, dm-devel, Dan Williams,
Ross Zwisler, Alasdair Kergon
On Fri, Jun 24 2016 at 2:23pm -0400,
Toshi Kani <toshi.kani@hpe.com> wrote:
> Change dm-stripe to implement direct_access function,
> stripe_direct_access(), which maps bdev and sector and
> calls direct_access function of its physical target device.
>
> Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
> Cc: Alasdair Kergon <agk@redhat.com>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
> ---
> drivers/md/dm-stripe.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
> index 48f1c01..8925f6a 100644
> --- a/drivers/md/dm-stripe.c
> +++ b/drivers/md/dm-stripe.c
> @@ -308,6 +308,30 @@ static int stripe_map(struct dm_target *ti, struct bio *bio)
> return DM_MAPIO_REMAPPED;
> }
>
> +static long stripe_direct_access(struct dm_target *ti, sector_t sector,
> + void __pmem **kaddr, pfn_t *pfn, long size)
> +{
> + struct stripe_c *sc;
> + struct block_device *bdev;
> + uint32_t stripe;
> + struct blk_dax_ctl dax = {
> + .size = size,
> + };
> + long ret;
> +
> + sc = ti->private;
> + stripe_map_sector(sc, sector, &stripe, &dax.sector);
> +
> + dax.sector += sc->stripe[stripe].physical_start;
> + bdev = sc->stripe[stripe].dev->bdev;
> +
> + ret = bdev_direct_access(bdev, &dax);
> + *kaddr = dax.addr;
> + *pfn = dax.pfn;
> +
> + return ret;
> +}
> +
> /*
> * Stripe status:
> *
> @@ -425,6 +449,7 @@ static struct target_type stripe_target = {
> .status = stripe_status,
> .iterate_devices = stripe_iterate_devices,
> .io_hints = stripe_io_hints,
> + .direct_access = stripe_direct_access,
> };
>
> int __init dm_stripe_init(void)
Thanks, once jens queues the block changes I'll be able to pull this in
to linux-dm.git
BTW, if in your testing you could evaluate/quantify any extra overhead
from DM that'd be useful to share. It could be there are bottlenecks
that need to be fixed, etc.
Mike
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-06-24 18:29 ` Mike Snitzer
@ 2016-06-24 18:42 ` Kani, Toshimitsu
0 siblings, 0 replies; 26+ messages in thread
From: Kani, Toshimitsu @ 2016-06-24 18:42 UTC (permalink / raw)
To: snitzer-H+wXaHxf7aLQT0dZR+AlfA
Cc: linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, agk-H+wXaHxf7aLQT0dZR+AlfA
On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
> On Fri, Jun 24 2016 at 2:23pm -0400,
> Toshi Kani <toshi.kani@hpe.com> wrote:
:
> Thanks, once jens queues the block changes I'll be able to pull this in
> to linux-dm.git
>
> BTW, if in your testing you could evaluate/quantify any extra overhead
> from DM that'd be useful to share. It could be there are bottlenecks
> that need to be fixed, etc.
I ran some performance tests as sanity checks (results are in ballpark), but
have not verified them carefully. Yes, I will check to see if there are any
bottlenecks.
Thanks!
-Toshi
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
@ 2016-06-24 18:42 ` Kani, Toshimitsu
0 siblings, 0 replies; 26+ messages in thread
From: Kani, Toshimitsu @ 2016-06-24 18:42 UTC (permalink / raw)
To: snitzer
Cc: linux-raid, linux-kernel, dan.j.williams, dm-devel, ross.zwisler,
linux-nvdimm, agk
On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
> On Fri, Jun 24 2016 at 2:23pm -0400,
> Toshi Kani <toshi.kani@hpe.com> wrote:
:
> Thanks, once jens queues the block changes I'll be able to pull this in
> to linux-dm.git
>
> BTW, if in your testing you could evaluate/quantify any extra overhead
> from DM that'd be useful to share. It could be there are bottlenecks
> that need to be fixed, etc.
I ran some performance tests as sanity checks (results are in ballpark), but
have not verified them carefully. Yes, I will check to see if there are any
bottlenecks.
Thanks!
-Toshi
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH] dm stripe: add DAX support
@ 2016-06-24 19:58 ` kbuild test robot
0 siblings, 0 replies; 26+ messages in thread
From: kbuild test robot @ 2016-06-24 19:58 UTC (permalink / raw)
To: Toshi Kani
Cc: snitzer, linux-nvdimm, linux-kernel, linux-raid, dm-devel,
kbuild-all, Alasdair Kergon
Hi,
[auto build test WARNING on dm/for-next]
[also build test WARNING on v4.7-rc4 next-20160624]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600
base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
config: m68k-sun3_defconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 4.9.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m68k
All warnings (new ones prefixed by >>):
drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer
.direct_access = stripe_direct_access,
^
drivers/md/dm-stripe.c:452:2: warning: missing braces around initializer [-Wmissing-braces]
drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list') [-Wmissing-braces]
>> drivers/md/dm-stripe.c:452:2: warning: initialization from incompatible pointer type
drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list.next')
vim +452 drivers/md/dm-stripe.c
436
437 blk_limits_io_min(limits, chunk_size);
438 blk_limits_io_opt(limits, chunk_size * sc->stripes);
439 }
440
441 static struct target_type stripe_target = {
442 .name = "striped",
443 .version = {1, 5, 1},
444 .module = THIS_MODULE,
445 .ctr = stripe_ctr,
446 .dtr = stripe_dtr,
447 .map = stripe_map,
448 .end_io = stripe_end_io,
449 .status = stripe_status,
450 .iterate_devices = stripe_iterate_devices,
451 .io_hints = stripe_io_hints,
> 452 .direct_access = stripe_direct_access,
453 };
454
455 int __init dm_stripe_init(void)
456 {
457 int r;
458
459 r = dm_register_target(&stripe_target);
460 if (r < 0)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH] dm stripe: add DAX support
@ 2016-06-24 19:58 ` kbuild test robot
0 siblings, 0 replies; 26+ messages in thread
From: kbuild test robot @ 2016-06-24 19:58 UTC (permalink / raw)
To: Toshi Kani
Cc: snitzer-H+wXaHxf7aLQT0dZR+AlfA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, kbuild-all-JC7UmRfGjtg,
Alasdair Kergon
Hi,
[auto build test WARNING on dm/for-next]
[also build test WARNING on v4.7-rc4 next-20160624]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600
base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
config: m68k-sun3_defconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 4.9.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m68k
All warnings (new ones prefixed by >>):
drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer
.direct_access = stripe_direct_access,
^
drivers/md/dm-stripe.c:452:2: warning: missing braces around initializer [-Wmissing-braces]
drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list') [-Wmissing-braces]
>> drivers/md/dm-stripe.c:452:2: warning: initialization from incompatible pointer type
drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list.next')
vim +452 drivers/md/dm-stripe.c
436
437 blk_limits_io_min(limits, chunk_size);
438 blk_limits_io_opt(limits, chunk_size * sc->stripes);
439 }
440
441 static struct target_type stripe_target = {
442 .name = "striped",
443 .version = {1, 5, 1},
444 .module = THIS_MODULE,
445 .ctr = stripe_ctr,
446 .dtr = stripe_dtr,
447 .map = stripe_map,
448 .end_io = stripe_end_io,
449 .status = stripe_status,
450 .iterate_devices = stripe_iterate_devices,
451 .io_hints = stripe_io_hints,
> 452 .direct_access = stripe_direct_access,
453 };
454
455 int __init dm_stripe_init(void)
456 {
457 int r;
458
459 r = dm_register_target(&stripe_target);
460 if (r < 0)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH] dm stripe: add DAX support
@ 2016-06-24 19:58 ` kbuild test robot
0 siblings, 0 replies; 26+ messages in thread
From: kbuild test robot @ 2016-06-24 19:58 UTC (permalink / raw)
To: Toshi Kani
Cc: kbuild-all, snitzer, linux-nvdimm, dm-devel, linux-raid,
linux-kernel, Toshi Kani, Alasdair Kergon, Dan Williams,
Ross Zwisler
[-- Attachment #1: Type: text/plain, Size: 2217 bytes --]
Hi,
[auto build test WARNING on dm/for-next]
[also build test WARNING on v4.7-rc4 next-20160624]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600
base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
config: m68k-sun3_defconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 4.9.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m68k
All warnings (new ones prefixed by >>):
drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer
.direct_access = stripe_direct_access,
^
drivers/md/dm-stripe.c:452:2: warning: missing braces around initializer [-Wmissing-braces]
drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list') [-Wmissing-braces]
>> drivers/md/dm-stripe.c:452:2: warning: initialization from incompatible pointer type
drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list.next')
vim +452 drivers/md/dm-stripe.c
436
437 blk_limits_io_min(limits, chunk_size);
438 blk_limits_io_opt(limits, chunk_size * sc->stripes);
439 }
440
441 static struct target_type stripe_target = {
442 .name = "striped",
443 .version = {1, 5, 1},
444 .module = THIS_MODULE,
445 .ctr = stripe_ctr,
446 .dtr = stripe_dtr,
447 .map = stripe_map,
448 .end_io = stripe_end_io,
449 .status = stripe_status,
450 .iterate_devices = stripe_iterate_devices,
451 .io_hints = stripe_io_hints,
> 452 .direct_access = stripe_direct_access,
453 };
454
455 int __init dm_stripe_init(void)
456 {
457 int r;
458
459 r = dm_register_target(&stripe_target);
460 if (r < 0)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 11731 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH] dm stripe: add DAX support
@ 2016-06-24 19:59 ` kbuild test robot
0 siblings, 0 replies; 26+ messages in thread
From: kbuild test robot @ 2016-06-24 19:59 UTC (permalink / raw)
To: Toshi Kani
Cc: snitzer, linux-nvdimm, linux-kernel, linux-raid, dm-devel,
kbuild-all, Alasdair Kergon
Hi,
[auto build test ERROR on dm/for-next]
[also build test ERROR on v4.7-rc4 next-20160624]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600
base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
config: x86_64-randconfig-s5-06250328 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All error/warnings (new ones prefixed by >>):
>> drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer
.direct_access = stripe_direct_access,
^
>> drivers/md/dm-stripe.c:452:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.direct_access = stripe_direct_access,
^~~~~~~~~~~~~~~~~~~~
drivers/md/dm-stripe.c:452:19: note: (near initialization for 'stripe_target.list.next')
>> drivers/md/dm-stripe.c:441:43: warning: missing braces around initializer [-Wmissing-braces]
static struct target_type stripe_target = {
^
drivers/md/dm-stripe.c:441:43: note: (near initialization for 'stripe_target')
cc1: some warnings being treated as errors
vim +/direct_access +452 drivers/md/dm-stripe.c
435 unsigned chunk_size = sc->chunk_size << SECTOR_SHIFT;
436
437 blk_limits_io_min(limits, chunk_size);
438 blk_limits_io_opt(limits, chunk_size * sc->stripes);
439 }
440
> 441 static struct target_type stripe_target = {
442 .name = "striped",
443 .version = {1, 5, 1},
444 .module = THIS_MODULE,
445 .ctr = stripe_ctr,
446 .dtr = stripe_dtr,
447 .map = stripe_map,
448 .end_io = stripe_end_io,
449 .status = stripe_status,
450 .iterate_devices = stripe_iterate_devices,
451 .io_hints = stripe_io_hints,
> 452 .direct_access = stripe_direct_access,
453 };
454
455 int __init dm_stripe_init(void)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH] dm stripe: add DAX support
@ 2016-06-24 19:59 ` kbuild test robot
0 siblings, 0 replies; 26+ messages in thread
From: kbuild test robot @ 2016-06-24 19:59 UTC (permalink / raw)
To: Toshi Kani
Cc: snitzer-H+wXaHxf7aLQT0dZR+AlfA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, kbuild-all-JC7UmRfGjtg,
Alasdair Kergon
Hi,
[auto build test ERROR on dm/for-next]
[also build test ERROR on v4.7-rc4 next-20160624]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600
base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
config: x86_64-randconfig-s5-06250328 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All error/warnings (new ones prefixed by >>):
>> drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer
.direct_access = stripe_direct_access,
^
>> drivers/md/dm-stripe.c:452:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.direct_access = stripe_direct_access,
^~~~~~~~~~~~~~~~~~~~
drivers/md/dm-stripe.c:452:19: note: (near initialization for 'stripe_target.list.next')
>> drivers/md/dm-stripe.c:441:43: warning: missing braces around initializer [-Wmissing-braces]
static struct target_type stripe_target = {
^
drivers/md/dm-stripe.c:441:43: note: (near initialization for 'stripe_target')
cc1: some warnings being treated as errors
vim +/direct_access +452 drivers/md/dm-stripe.c
435 unsigned chunk_size = sc->chunk_size << SECTOR_SHIFT;
436
437 blk_limits_io_min(limits, chunk_size);
438 blk_limits_io_opt(limits, chunk_size * sc->stripes);
439 }
440
> 441 static struct target_type stripe_target = {
442 .name = "striped",
443 .version = {1, 5, 1},
444 .module = THIS_MODULE,
445 .ctr = stripe_ctr,
446 .dtr = stripe_dtr,
447 .map = stripe_map,
448 .end_io = stripe_end_io,
449 .status = stripe_status,
450 .iterate_devices = stripe_iterate_devices,
451 .io_hints = stripe_io_hints,
> 452 .direct_access = stripe_direct_access,
453 };
454
455 int __init dm_stripe_init(void)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH] dm stripe: add DAX support
@ 2016-06-24 19:59 ` kbuild test robot
0 siblings, 0 replies; 26+ messages in thread
From: kbuild test robot @ 2016-06-24 19:59 UTC (permalink / raw)
To: Toshi Kani
Cc: kbuild-all, snitzer, linux-nvdimm, dm-devel, linux-raid,
linux-kernel, Toshi Kani, Alasdair Kergon, Dan Williams,
Ross Zwisler
[-- Attachment #1: Type: text/plain, Size: 2301 bytes --]
Hi,
[auto build test ERROR on dm/for-next]
[also build test ERROR on v4.7-rc4 next-20160624]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600
base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
config: x86_64-randconfig-s5-06250328 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All error/warnings (new ones prefixed by >>):
>> drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer
.direct_access = stripe_direct_access,
^
>> drivers/md/dm-stripe.c:452:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.direct_access = stripe_direct_access,
^~~~~~~~~~~~~~~~~~~~
drivers/md/dm-stripe.c:452:19: note: (near initialization for 'stripe_target.list.next')
>> drivers/md/dm-stripe.c:441:43: warning: missing braces around initializer [-Wmissing-braces]
static struct target_type stripe_target = {
^
drivers/md/dm-stripe.c:441:43: note: (near initialization for 'stripe_target')
cc1: some warnings being treated as errors
vim +/direct_access +452 drivers/md/dm-stripe.c
435 unsigned chunk_size = sc->chunk_size << SECTOR_SHIFT;
436
437 blk_limits_io_min(limits, chunk_size);
438 blk_limits_io_opt(limits, chunk_size * sc->stripes);
439 }
440
> 441 static struct target_type stripe_target = {
442 .name = "striped",
443 .version = {1, 5, 1},
444 .module = THIS_MODULE,
445 .ctr = stripe_ctr,
446 .dtr = stripe_dtr,
447 .map = stripe_map,
448 .end_io = stripe_end_io,
449 .status = stripe_status,
450 .iterate_devices = stripe_iterate_devices,
451 .io_hints = stripe_io_hints,
> 452 .direct_access = stripe_direct_access,
453 };
454
455 int __init dm_stripe_init(void)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 26116 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-06-24 19:58 ` kbuild test robot
@ 2016-06-24 20:02 ` Mike Snitzer
-1 siblings, 0 replies; 26+ messages in thread
From: Mike Snitzer @ 2016-06-24 20:02 UTC (permalink / raw)
To: kbuild test robot
Cc: linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, kbuild-all-JC7UmRfGjtg,
Alasdair Kergon
On Fri, Jun 24 2016 at 3:58pm -0400,
kbuild test robot <lkp-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> wrote:
> Hi,
>
> [auto build test WARNING on dm/for-next]
> [also build test WARNING on v4.7-rc4 next-20160624]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600
> base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
> config: m68k-sun3_defconfig (attached as .config)
> compiler: m68k-linux-gcc (GCC) 4.9.0
> reproduce:
> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> make.cross ARCH=m68k
>
> All warnings (new ones prefixed by >>):
>
> drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer
> .direct_access = stripe_direct_access,
> ^
> drivers/md/dm-stripe.c:452:2: warning: missing braces around initializer [-Wmissing-braces]
> drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list') [-Wmissing-braces]
> >> drivers/md/dm-stripe.c:452:2: warning: initialization from incompatible pointer type
> drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list.next')
FYI, overzealous kbuild robot build failure here.. I haven't staged the
prereq DM core changes yet because I'm waiting for Jens to take the 2
block changes those depend on.
Mike
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
@ 2016-06-24 20:02 ` Mike Snitzer
0 siblings, 0 replies; 26+ messages in thread
From: Mike Snitzer @ 2016-06-24 20:02 UTC (permalink / raw)
To: kbuild test robot
Cc: Toshi Kani, kbuild-all, linux-nvdimm, dm-devel, linux-raid,
linux-kernel, Alasdair Kergon, Dan Williams, Ross Zwisler
On Fri, Jun 24 2016 at 3:58pm -0400,
kbuild test robot <lkp@intel.com> wrote:
> Hi,
>
> [auto build test WARNING on dm/for-next]
> [also build test WARNING on v4.7-rc4 next-20160624]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-DAX-support/20160625-022600
> base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
> config: m68k-sun3_defconfig (attached as .config)
> compiler: m68k-linux-gcc (GCC) 4.9.0
> reproduce:
> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> make.cross ARCH=m68k
>
> All warnings (new ones prefixed by >>):
>
> drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access' specified in initializer
> .direct_access = stripe_direct_access,
> ^
> drivers/md/dm-stripe.c:452:2: warning: missing braces around initializer [-Wmissing-braces]
> drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list') [-Wmissing-braces]
> >> drivers/md/dm-stripe.c:452:2: warning: initialization from incompatible pointer type
> drivers/md/dm-stripe.c:452:2: warning: (near initialization for 'stripe_target.list.next')
FYI, overzealous kbuild robot build failure here.. I haven't staged the
prereq DM core changes yet because I'm waiting for Jens to take the 2
block changes those depend on.
Mike
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-06-24 20:02 ` Mike Snitzer
@ 2016-06-24 20:46 ` Kani, Toshimitsu
-1 siblings, 0 replies; 26+ messages in thread
From: Kani, Toshimitsu @ 2016-06-24 20:46 UTC (permalink / raw)
To: lkp-ral2JQCrhuEAvxtiuMwx3w, snitzer-H+wXaHxf7aLQT0dZR+AlfA
Cc: linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, kbuild-all-JC7UmRfGjtg,
agk-H+wXaHxf7aLQT0dZR+AlfA
On Fri, 2016-06-24 at 16:02 -0400, Mike Snitzer wrote:
> On Fri, Jun 24 2016 at 3:58pm -0400,
> kbuild test robot <lkp@intel.com> wrote:
>
> >
> > Hi,
> >
> > [auto build test WARNING on dm/for-next]
> > [also build test WARNING on v4.7-rc4 next-20160624]
> > [if your patch is applied to the wrong git tree, please drop us a note to
> > help improve the system]
> >
> > url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-
> > DAX-support/20160625-022600
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linu
> > x-dm.git for-next
> > config: m68k-sun3_defconfig (attached as .config)
> > compiler: m68k-linux-gcc (GCC) 4.9.0
> > reproduce:
> > wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.gi
> > t/plain/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > # save the attached .config to linux build tree
> > make.cross ARCH=m68k
> >
> > All warnings (new ones prefixed by >>):
> >
> > drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access'
> > specified in initializer
> > .direct_access = stripe_direct_access,
> > ^
> > drivers/md/dm-stripe.c:452:2: warning: missing braces around
> > initializer [-Wmissing-braces]
> > drivers/md/dm-stripe.c:452:2: warning: (near initialization for
> > 'stripe_target.list') [-Wmissing-braces]
> > >
> > > >
> > > > drivers/md/dm-stripe.c:452:2: warning: initialization from
> > > > incompatible pointer type
> > drivers/md/dm-stripe.c:452:2: warning: (near initialization for
> > 'stripe_target.list.next')
>
> FYI, overzealous kbuild robot build failure here.. I haven't staged the
> prereq DM core changes yet because I'm waiting for Jens to take the 2
> block changes those depend on.
This patch applies on top of wip. Could this be because 'for-next' does not
have the previous dm/dm-linear series?
Thanks,
-Toshi
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
@ 2016-06-24 20:46 ` Kani, Toshimitsu
0 siblings, 0 replies; 26+ messages in thread
From: Kani, Toshimitsu @ 2016-06-24 20:46 UTC (permalink / raw)
To: lkp, snitzer
Cc: linux-kernel, linux-nvdimm, agk, linux-raid, dan.j.williams,
kbuild-all, ross.zwisler, dm-devel
On Fri, 2016-06-24 at 16:02 -0400, Mike Snitzer wrote:
> On Fri, Jun 24 2016 at 3:58pm -0400,
> kbuild test robot <lkp@intel.com> wrote:
>
> >
> > Hi,
> >
> > [auto build test WARNING on dm/for-next]
> > [also build test WARNING on v4.7-rc4 next-20160624]
> > [if your patch is applied to the wrong git tree, please drop us a note to
> > help improve the system]
> >
> > url: https://github.com/0day-ci/linux/commits/Toshi-Kani/dm-stripe-add-
> > DAX-support/20160625-022600
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linu
> > x-dm.git for-next
> > config: m68k-sun3_defconfig (attached as .config)
> > compiler: m68k-linux-gcc (GCC) 4.9.0
> > reproduce:
> > wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.gi
> > t/plain/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > # save the attached .config to linux build tree
> > make.cross ARCH=m68k
> >
> > All warnings (new ones prefixed by >>):
> >
> > drivers/md/dm-stripe.c:452:2: error: unknown field 'direct_access'
> > specified in initializer
> > .direct_access = stripe_direct_access,
> > ^
> > drivers/md/dm-stripe.c:452:2: warning: missing braces around
> > initializer [-Wmissing-braces]
> > drivers/md/dm-stripe.c:452:2: warning: (near initialization for
> > 'stripe_target.list') [-Wmissing-braces]
> > >
> > > >
> > > > drivers/md/dm-stripe.c:452:2: warning: initialization from
> > > > incompatible pointer type
> > drivers/md/dm-stripe.c:452:2: warning: (near initialization for
> > 'stripe_target.list.next')
>
> FYI, overzealous kbuild robot build failure here.. I haven't staged the
> prereq DM core changes yet because I'm waiting for Jens to take the 2
> block changes those depend on.
This patch applies on top of wip. Could this be because 'for-next' does not
have the previous dm/dm-linear series?
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-06-24 18:29 ` Mike Snitzer
@ 2016-07-12 22:22 ` Kani, Toshimitsu
0 siblings, 0 replies; 26+ messages in thread
From: Kani, Toshimitsu @ 2016-07-12 22:22 UTC (permalink / raw)
To: snitzer-H+wXaHxf7aLQT0dZR+AlfA
Cc: linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, agk-H+wXaHxf7aLQT0dZR+AlfA
On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
>
> BTW, if in your testing you could evaluate/quantify any extra overhead
> from DM that'd be useful to share. It could be there are bottlenecks
> that need to be fixed, etc.
Here are some results from fio benchmark. The test is single-threaded and is
bound to one CPU.
DAX LVM IOPS NOTE
---------------------------------------
Y N 790K
Y Y 754K 5% overhead with LVM
N N 567K
N Y 457K 20% overhead with LVM
DAX: Y: mount -o dax,noatime, N: mount -o noatime
LVM: Y: dm-linear on pmem0 device, N: pmem0 device
fio: bs=4k, size=2G, direct=1, rw=randread, numjobs=1
Among the 5% overhead with DAX/LVM, the new DM direct_access interfaces
account for less than 0.5%.
dm_blk_direct_access 0.28%
linear_direct_access 0.17%
The average latency increases slightly from 0.93us to 0.95us. I think most of
the overhead comes from the submit_bio() path, which is used only for
accessing metadata with DAX. I believe this is due to cloning bio for each
request in DM. There is 12% more L2 miss in total.
Without DAX, 20% overhead is observed with LVM. Average latency increases
from 1.39us to 1.82us. Without DAX, bio is cloned for both data and metadata.
Thanks,
-Toshi
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
@ 2016-07-12 22:22 ` Kani, Toshimitsu
0 siblings, 0 replies; 26+ messages in thread
From: Kani, Toshimitsu @ 2016-07-12 22:22 UTC (permalink / raw)
To: snitzer
Cc: linux-raid, linux-kernel, dan.j.williams, dm-devel, ross.zwisler,
linux-nvdimm, agk
On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
>
> BTW, if in your testing you could evaluate/quantify any extra overhead
> from DM that'd be useful to share. It could be there are bottlenecks
> that need to be fixed, etc.
Here are some results from fio benchmark. The test is single-threaded and is
bound to one CPU.
DAX LVM IOPS NOTE
---------------------------------------
Y N 790K
Y Y 754K 5% overhead with LVM
N N 567K
N Y 457K 20% overhead with LVM
DAX: Y: mount -o dax,noatime, N: mount -o noatime
LVM: Y: dm-linear on pmem0 device, N: pmem0 device
fio: bs=4k, size=2G, direct=1, rw=randread, numjobs=1
Among the 5% overhead with DAX/LVM, the new DM direct_access interfaces
account for less than 0.5%.
dm_blk_direct_access 0.28%
linear_direct_access 0.17%
The average latency increases slightly from 0.93us to 0.95us. I think most of
the overhead comes from the submit_bio() path, which is used only for
accessing metadata with DAX. I believe this is due to cloning bio for each
request in DM. There is 12% more L2 miss in total.
Without DAX, 20% overhead is observed with LVM. Average latency increases
from 1.39us to 1.82us. Without DAX, bio is cloned for both data and metadata.
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-07-12 22:22 ` Kani, Toshimitsu
@ 2016-07-13 2:01 ` Mike Snitzer
-1 siblings, 0 replies; 26+ messages in thread
From: Mike Snitzer @ 2016-07-13 2:01 UTC (permalink / raw)
To: Kani, Toshimitsu, axboe-b10kYP2dOMg
Cc: linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, agk-H+wXaHxf7aLQT0dZR+AlfA
On Tue, Jul 12 2016 at 6:22pm -0400,
Kani, Toshimitsu <toshi.kani-ZPxbGqLxI0U@public.gmane.org> wrote:
> On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
> >
> > BTW, if in your testing you could evaluate/quantify any extra overhead
> > from DM that'd be useful to share. It could be there are bottlenecks
> > that need to be fixed, etc.
>
> Here are some results from fio benchmark. The test is single-threaded and is
> bound to one CPU.
>
> DAX LVM IOPS NOTE
> ---------------------------------------
> Y N 790K
> Y Y 754K 5% overhead with LVM
> N N 567K
> N Y 457K 20% overhead with LVM
>
> DAX: Y: mount -o dax,noatime, N: mount -o noatime
> LVM: Y: dm-linear on pmem0 device, N: pmem0 device
> fio: bs=4k, size=2G, direct=1, rw=randread, numjobs=1
>
> Among the 5% overhead with DAX/LVM, the new DM direct_access interfaces
> account for less than 0.5%.
>
> dm_blk_direct_access 0.28%
> linear_direct_access 0.17%
>
> The average latency increases slightly from 0.93us to 0.95us. I think most of
> the overhead comes from the submit_bio() path, which is used only for
> accessing metadata with DAX. I believe this is due to cloning bio for each
> request in DM. There is 12% more L2 miss in total.
>
> Without DAX, 20% overhead is observed with LVM. Average latency increases
> from 1.39us to 1.82us. Without DAX, bio is cloned for both data and metadata.
Thanks for putting this summary together. Unfortunately none of the DM
changes can be queued for 4.8 until Jens takes the 2 block core patches:
https://patchwork.kernel.org/patch/9196021/
https://patchwork.kernel.org/patch/9196019/
Not sure what the hold up and/or issue is with them. But I've asked
twice (and implicilty a 3rd time here). Hopefully they land in time for
4.8.
Mike
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
@ 2016-07-13 2:01 ` Mike Snitzer
0 siblings, 0 replies; 26+ messages in thread
From: Mike Snitzer @ 2016-07-13 2:01 UTC (permalink / raw)
To: Kani, Toshimitsu, axboe
Cc: linux-raid, linux-kernel, dan.j.williams, dm-devel, ross.zwisler,
linux-nvdimm, agk
On Tue, Jul 12 2016 at 6:22pm -0400,
Kani, Toshimitsu <toshi.kani@hpe.com> wrote:
> On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
> >
> > BTW, if in your testing you could evaluate/quantify any extra overhead
> > from DM that'd be useful to share. It could be there are bottlenecks
> > that need to be fixed, etc.
>
> Here are some results from fio benchmark. The test is single-threaded and is
> bound to one CPU.
>
> DAX LVM IOPS NOTE
> ---------------------------------------
> Y N 790K
> Y Y 754K 5% overhead with LVM
> N N 567K
> N Y 457K 20% overhead with LVM
>
> DAX: Y: mount -o dax,noatime, N: mount -o noatime
> LVM: Y: dm-linear on pmem0 device, N: pmem0 device
> fio: bs=4k, size=2G, direct=1, rw=randread, numjobs=1
>
> Among the 5% overhead with DAX/LVM, the new DM direct_access interfaces
> account for less than 0.5%.
>
> dm_blk_direct_access 0.28%
> linear_direct_access 0.17%
>
> The average latency increases slightly from 0.93us to 0.95us. I think most of
> the overhead comes from the submit_bio() path, which is used only for
> accessing metadata with DAX. I believe this is due to cloning bio for each
> request in DM. There is 12% more L2 miss in total.
>
> Without DAX, 20% overhead is observed with LVM. Average latency increases
> from 1.39us to 1.82us. Without DAX, bio is cloned for both data and metadata.
Thanks for putting this summary together. Unfortunately none of the DM
changes can be queued for 4.8 until Jens takes the 2 block core patches:
https://patchwork.kernel.org/patch/9196021/
https://patchwork.kernel.org/patch/9196019/
Not sure what the hold up and/or issue is with them. But I've asked
twice (and implicilty a 3rd time here). Hopefully they land in time for
4.8.
Mike
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-07-13 2:01 ` Mike Snitzer
@ 2016-07-13 15:03 ` Kani, Toshimitsu
-1 siblings, 0 replies; 26+ messages in thread
From: Kani, Toshimitsu @ 2016-07-13 15:03 UTC (permalink / raw)
To: axboe-b10kYP2dOMg, snitzer-H+wXaHxf7aLQT0dZR+AlfA
Cc: dm-devel-H+wXaHxf7aLQT0dZR+AlfA,
linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA, agk-H+wXaHxf7aLQT0dZR+AlfA
On Tue, 2016-07-12 at 22:01 -0400, Mike Snitzer wrote:
> On Tue, Jul 12 2016 at 6:22pm -0400,
> Kani, Toshimitsu <toshi.kani@hpe.com> wrote:
> > On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
> > >
:
> Thanks for putting this summary together. Unfortunately none of the DM
> changes can be queued for 4.8 until Jens takes the 2 block core patches:
> https://patchwork.kernel.org/patch/9196021/
> https://patchwork.kernel.org/patch/9196019/
>
> Not sure what the hold up and/or issue is with them. But I've asked
> twice (and implicilty a 3rd time here). Hopefully they land in time for
> 4.8.
Hi Jens,
Can you take the two patches above? These patches add QUEUE_FLAG_DAX and its
sysfs show func. They allow device-mapper to set dax-capability based on its
configuration, and also allow user applications to check dax-capability via
sysfs.
Thanks,
-Toshi
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
@ 2016-07-13 15:03 ` Kani, Toshimitsu
0 siblings, 0 replies; 26+ messages in thread
From: Kani, Toshimitsu @ 2016-07-13 15:03 UTC (permalink / raw)
To: axboe, snitzer
Cc: linux-kernel, linux-nvdimm, agk, linux-raid, dan.j.williams,
ross.zwisler, yigal, dm-devel
On Tue, 2016-07-12 at 22:01 -0400, Mike Snitzer wrote:
> On Tue, Jul 12 2016 at 6:22pm -0400,
> Kani, Toshimitsu <toshi.kani@hpe.com> wrote:
> > On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
> > >
:
> Thanks for putting this summary together. Unfortunately none of the DM
> changes can be queued for 4.8 until Jens takes the 2 block core patches:
> https://patchwork.kernel.org/patch/9196021/
> https://patchwork.kernel.org/patch/9196019/
>
> Not sure what the hold up and/or issue is with them. But I've asked
> twice (and implicilty a 3rd time here). Hopefully they land in time for
> 4.8.
Hi Jens,
Can you take the two patches above? These patches add QUEUE_FLAG_DAX and its
sysfs show func. They allow device-mapper to set dax-capability based on its
configuration, and also allow user applications to check dax-capability via
sysfs.
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-07-13 15:03 ` Kani, Toshimitsu
@ 2016-07-21 0:01 ` Mike Snitzer
-1 siblings, 0 replies; 26+ messages in thread
From: Mike Snitzer @ 2016-07-21 0:01 UTC (permalink / raw)
To: axboe-b10kYP2dOMg, axboe-tSWWG44O7X1aa/9Udqfwiw
Cc: linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, agk-H+wXaHxf7aLQT0dZR+AlfA
On Wed, Jul 13 2016 at 11:03am -0400,
Kani, Toshimitsu <toshi.kani-ZPxbGqLxI0U@public.gmane.org> wrote:
> On Tue, 2016-07-12 at 22:01 -0400, Mike Snitzer wrote:
> > On Tue, Jul 12 2016 at 6:22pm -0400,
> > Kani, Toshimitsu <toshi.kani-ZPxbGqLxI0U@public.gmane.org> wrote:
> > > On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
> > > >
> :
> > Thanks for putting this summary together. Unfortunately none of the DM
> > changes can be queued for 4.8 until Jens takes the 2 block core patches:
> > https://patchwork.kernel.org/patch/9196021/
> > https://patchwork.kernel.org/patch/9196019/
> >
> > Not sure what the hold up and/or issue is with them. But I've asked
> > twice (and implicilty a 3rd time here). Hopefully they land in time for
> > 4.8.
>
> Hi Jens,
>
> Can you take the two patches above? These patches add QUEUE_FLAG_DAX and its
> sysfs show func. They allow device-mapper to set dax-capability based on its
> configuration, and also allow user applications to check dax-capability via
> sysfs.
Hi Jens,
As I shared with you before, here are the 2 patches I staged in
linux-next via linux-dm.git's 'for-next' (same as in the patchwork
references above) -- these were staged just so we had linux-next
coverage until you picked them up.
Please pick these up for 4.8 -- the changes are straightforward, are
required for DM's DAX support, and Dan Williams has also acked them:
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=6c00531c6affa42b165df73a1eac3289bc45f4c4
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=51d1a5abcd0e88cb4528f35643245ea59cf234f1
Feel free to pick them up from patchwork or cherry-pick from
linux-dm.git
Thanks!
Mike
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
@ 2016-07-21 0:01 ` Mike Snitzer
0 siblings, 0 replies; 26+ messages in thread
From: Mike Snitzer @ 2016-07-21 0:01 UTC (permalink / raw)
To: axboe, axboe
Cc: Kani, Toshimitsu, dm-devel, linux-nvdimm, linux-kernel,
linux-raid, yigal, dan.j.williams, ross.zwisler, agk
On Wed, Jul 13 2016 at 11:03am -0400,
Kani, Toshimitsu <toshi.kani@hpe.com> wrote:
> On Tue, 2016-07-12 at 22:01 -0400, Mike Snitzer wrote:
> > On Tue, Jul 12 2016 at 6:22pm -0400,
> > Kani, Toshimitsu <toshi.kani@hpe.com> wrote:
> > > On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
> > > >
> :
> > Thanks for putting this summary together. Unfortunately none of the DM
> > changes can be queued for 4.8 until Jens takes the 2 block core patches:
> > https://patchwork.kernel.org/patch/9196021/
> > https://patchwork.kernel.org/patch/9196019/
> >
> > Not sure what the hold up and/or issue is with them. But I've asked
> > twice (and implicilty a 3rd time here). Hopefully they land in time for
> > 4.8.
>
> Hi Jens,
>
> Can you take the two patches above? These patches add QUEUE_FLAG_DAX and its
> sysfs show func. They allow device-mapper to set dax-capability based on its
> configuration, and also allow user applications to check dax-capability via
> sysfs.
Hi Jens,
As I shared with you before, here are the 2 patches I staged in
linux-next via linux-dm.git's 'for-next' (same as in the patchwork
references above) -- these were staged just so we had linux-next
coverage until you picked them up.
Please pick these up for 4.8 -- the changes are straightforward, are
required for DM's DAX support, and Dan Williams has also acked them:
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=6c00531c6affa42b165df73a1eac3289bc45f4c4
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=51d1a5abcd0e88cb4528f35643245ea59cf234f1
Feel free to pick them up from patchwork or cherry-pick from
linux-dm.git
Thanks!
Mike
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
2016-07-21 0:01 ` Mike Snitzer
@ 2016-07-21 3:03 ` Jens Axboe
-1 siblings, 0 replies; 26+ messages in thread
From: Jens Axboe @ 2016-07-21 3:03 UTC (permalink / raw)
To: Mike Snitzer, axboe-b10kYP2dOMg
Cc: linux-nvdimm-y27Ovi1pjclAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA, agk-H+wXaHxf7aLQT0dZR+AlfA
On 07/20/2016 06:01 PM, Mike Snitzer wrote:
> On Wed, Jul 13 2016 at 11:03am -0400,
> Kani, Toshimitsu <toshi.kani-ZPxbGqLxI0U@public.gmane.org> wrote:
>
>> On Tue, 2016-07-12 at 22:01 -0400, Mike Snitzer wrote:
>>> On Tue, Jul 12 2016 at 6:22pm -0400,
>>> Kani, Toshimitsu <toshi.kani-ZPxbGqLxI0U@public.gmane.org> wrote:
>>>> On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
>>>>>
>> :
>>> Thanks for putting this summary together. Unfortunately none of the DM
>>> changes can be queued for 4.8 until Jens takes the 2 block core patches:
>>> https://patchwork.kernel.org/patch/9196021/
>>> https://patchwork.kernel.org/patch/9196019/
>>>
>>> Not sure what the hold up and/or issue is with them. But I've asked
>>> twice (and implicilty a 3rd time here). Hopefully they land in time for
>>> 4.8.
>>
>> Hi Jens,
>>
>> Can you take the two patches above? These patches add QUEUE_FLAG_DAX and its
>> sysfs show func. They allow device-mapper to set dax-capability based on its
>> configuration, and also allow user applications to check dax-capability via
>> sysfs.
>
> Hi Jens,
>
> As I shared with you before, here are the 2 patches I staged in
> linux-next via linux-dm.git's 'for-next' (same as in the patchwork
> references above) -- these were staged just so we had linux-next
> coverage until you picked them up.
>
> Please pick these up for 4.8 -- the changes are straightforward, are
> required for DM's DAX support, and Dan Williams has also acked them:
>
> https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=6c00531c6affa42b165df73a1eac3289bc45f4c4
> https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=51d1a5abcd0e88cb4528f35643245ea59cf234f1
>
> Feel free to pick them up from patchwork or cherry-pick from
> linux-dm.git
Added for 4.8, thanks!
--
Jens Axboe
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: dm stripe: add DAX support
@ 2016-07-21 3:03 ` Jens Axboe
0 siblings, 0 replies; 26+ messages in thread
From: Jens Axboe @ 2016-07-21 3:03 UTC (permalink / raw)
To: Mike Snitzer, axboe
Cc: Kani, Toshimitsu, dm-devel, linux-nvdimm, linux-kernel,
linux-raid, yigal, dan.j.williams, ross.zwisler, agk
On 07/20/2016 06:01 PM, Mike Snitzer wrote:
> On Wed, Jul 13 2016 at 11:03am -0400,
> Kani, Toshimitsu <toshi.kani@hpe.com> wrote:
>
>> On Tue, 2016-07-12 at 22:01 -0400, Mike Snitzer wrote:
>>> On Tue, Jul 12 2016 at 6:22pm -0400,
>>> Kani, Toshimitsu <toshi.kani@hpe.com> wrote:
>>>> On Fri, 2016-06-24 at 14:29 -0400, Mike Snitzer wrote:
>>>>>
>> :
>>> Thanks for putting this summary together. Unfortunately none of the DM
>>> changes can be queued for 4.8 until Jens takes the 2 block core patches:
>>> https://patchwork.kernel.org/patch/9196021/
>>> https://patchwork.kernel.org/patch/9196019/
>>>
>>> Not sure what the hold up and/or issue is with them. But I've asked
>>> twice (and implicilty a 3rd time here). Hopefully they land in time for
>>> 4.8.
>>
>> Hi Jens,
>>
>> Can you take the two patches above? These patches add QUEUE_FLAG_DAX and its
>> sysfs show func. They allow device-mapper to set dax-capability based on its
>> configuration, and also allow user applications to check dax-capability via
>> sysfs.
>
> Hi Jens,
>
> As I shared with you before, here are the 2 patches I staged in
> linux-next via linux-dm.git's 'for-next' (same as in the patchwork
> references above) -- these were staged just so we had linux-next
> coverage until you picked them up.
>
> Please pick these up for 4.8 -- the changes are straightforward, are
> required for DM's DAX support, and Dan Williams has also acked them:
>
> https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=6c00531c6affa42b165df73a1eac3289bc45f4c4
> https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=51d1a5abcd0e88cb4528f35643245ea59cf234f1
>
> Feel free to pick them up from patchwork or cherry-pick from
> linux-dm.git
Added for 4.8, thanks!
--
Jens Axboe
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2016-07-21 3:03 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-24 18:23 [PATCH] dm stripe: add DAX support Toshi Kani
2016-06-24 18:23 ` Toshi Kani
2016-06-24 18:23 ` Toshi Kani
2016-06-24 18:29 ` Mike Snitzer
[not found] ` <20160624182859.GD13898-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-06-24 18:42 ` Kani, Toshimitsu
2016-06-24 18:42 ` Kani, Toshimitsu
2016-07-12 22:22 ` Kani, Toshimitsu
2016-07-12 22:22 ` Kani, Toshimitsu
[not found] ` <1468362104.8908.43.camel-ZPxbGqLxI0U@public.gmane.org>
2016-07-13 2:01 ` Mike Snitzer
2016-07-13 2:01 ` Mike Snitzer
[not found] ` <20160713020100.GA5872-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-07-13 15:03 ` Kani, Toshimitsu
2016-07-13 15:03 ` Kani, Toshimitsu
[not found] ` <1468422189.8908.53.camel-ZPxbGqLxI0U@public.gmane.org>
2016-07-21 0:01 ` Mike Snitzer
2016-07-21 0:01 ` Mike Snitzer
[not found] ` <20160721000142.GA21913-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-07-21 3:03 ` Jens Axboe
2016-07-21 3:03 ` Jens Axboe
2016-06-24 19:58 ` [PATCH] " kbuild test robot
2016-06-24 19:58 ` kbuild test robot
2016-06-24 19:58 ` kbuild test robot
[not found] ` <201606250312.OzHHesq4%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-06-24 20:02 ` Mike Snitzer
2016-06-24 20:02 ` Mike Snitzer
[not found] ` <20160624200239.GA15587-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-06-24 20:46 ` Kani, Toshimitsu
2016-06-24 20:46 ` Kani, Toshimitsu
2016-06-24 19:59 ` [PATCH] " kbuild test robot
2016-06-24 19:59 ` kbuild test robot
2016-06-24 19:59 ` kbuild test robot
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.