On Mon, 2 May 2011, Martin K. Petersen wrote: > >>>>> "Lukas" == Lukas Czerner <lczerner@xxxxxxxxxx> writes: > > Lukas, > > Lukas> [root@trim ~]# lvcreate -L 3500M vg_test > Lukas> Logical volume "lvol0" created > > Ok, so here's what I think is going on. You're creating a linear target > which happens to fit inside the first PV. > > Here's two devices. One that supports discard_zeroes_data=1 (8:17) and > one that doesn't (8:49). > > # dmsetup table > foo-bar: 0 1032192 striped 2 32 8:17 384 8:49 384 > foo-baz: 0 106496 linear 8:17 516480 > > # grep . /sys/block/d*/queue/discard_z* > /sys/block/dm-0/queue/discard_zeroes_data:0 > /sys/block/dm-1/queue/discard_zeroes_data:1 > > LV foo/bar (dm-0) is striped, straddling two devices with incompatible > values. Hence 0. > > LV foo/baz (dm-1) is linear and fits inside the first PV. Thus it has > discard_zeroes_data=1. Well that's why I have included /proc/partition, so you can see that this is not happening, because both partitions are 1.86GB long and the LV I am creating from those is 3.42GB long. [root@trim ~]# dmsetup table vg_test-lvol0: 0 3899392 linear 8:49 2048 vg_test-lvol0: 3899392 3268608 linear 8:19 2048 Nevertheless there is something weird going on, because even when I create striped volume I get this: [root@trim ~]# dmsetup table vg_test-lvol0: 0 7176192 striped 2 16 8:49 2048 8:19 2048 [root@trim ~]# ls -lah /dev/mapper/vg_test-lvol0 lrwxrwxrwx. 1 root root 7 3. kvě 04.42 /dev/mapper/vg_test-lvol0 -> ../dm-0 [root@trim ~]# grep . /sys/block/dm-0/queue/discard_* /sys/block/dm-0/queue/discard_granularity:512 /sys/block/dm-0/queue/discard_max_bytes:4294966784 /sys/block/dm-0/queue/discard_zeroes_data:1 And of course (8:49) is a partition on the SSD which does zero data and (8:19) is a partition on the spinning device which does not zero data, nor does it support discard. And this is on yesterdays kernel. [root@trim ~]# uname -r 2.6.39-rc5+ So assuming that you're trying recent kernel as well, someone is doing something different :) Thanks! -Lukas