From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Mon, 2 May 2011 10:58:11 -0400 From: Mike Snitzer Message-ID: <20110502145807.GA32155@redhat.com> References: <20110428075355.GA2190@infradead.org> <20110428205935.GA24979@redhat.com> <20110429122454.GL32370@agk-dp.fab.redhat.com> <20110502081308.GC8642@agk-dp.fab.redhat.com> <20110502081925.GA11312@infradead.org> MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [linux-lvm] do not disable ext4 discards on first discard failure? [was: Re: dm snapshot: ignore discards issued to the snapshot-origin target] Reply-To: LVM general discussion and development List-Id: LVM general discussion and development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , List-Id: Content-Type: text/plain; charset="utf-8" To: Lukas Czerner Cc: sandeen@redhat.com, "Martin K. Petersen" , Christoph Hellwig , device-mapper development , DarkNovaNick@gmail.com, linux-lvm@redhat.com, linux-ext4@vger.kernel.org, Alasdair G Kergon On Mon, May 02 2011 at 10:39am -0400, Lukas Czerner wrote: > On Mon, 2 May 2011, Martin K. Petersen wrote: > > > >>>>> "Lukas" == Lukas Czerner writes: > > > > Lukas> So I gave it a try. First of all the device composed of SSD and > > Lukas> spinning disk does export discard_support information properly, > > Lukas> however it also advertise discard_zeroes_data which is wrong and > > Lukas> possibly dangerous and should be fixed! > > > > I can't reproduce this here. If I mix discard and non-discard devices > > things work correctly. discard_zeroes_data also gets cleared if I mix > > discard-capable drives where one zeroes and one doesn't. > > > > > > [root@trim ~]# hdparm -I /dev/sdb | grep -i trim > [root@trim ~]# cat /sys/block/sdb/queue/discard_zeroes_data > 0 > [root@trim ~]# hdparm -I /dev/sdd | grep -i trim > * Data Set Management TRIM supported > * Deterministic read after TRIM > [root@trim ~]# cat /sys/block/sdd/queue/discard_zeroes_data > 1 > [root@trim ~]# pvcreate /dev/sdd1 > Physical volume "/dev/sdd1" successfully created > [root@trim ~]# pvcreate /dev/sdb3 > Physical volume "/dev/sdb3" successfully created > [root@trim ~]# vgcreate vg_test /dev/sdd1 /dev/sdb3 > Volume group "vg_test" successfully created > [root@trim ~]# lvcreate -L 3500M vg_test > Logical volume "lvol0" created > [root@trim ~]# ls -lah /dev/mapper/vg_test-lvol0 > lrwxrwxrwx. 1 root root 7 2. kvě 10.30 /dev/mapper/vg_test-lvol0 -> ../dm-0 > [root@trim ~]# cat /sys/block/dm-0/queue/discard_zeroes_data > 1 Hmm, Strange considering DM just uses blk_stack_limits(). As Martin said, current blk_stack_limits() code is fine: t->discard_zeroes_data &= b->discard_zeroes_data; > So I assume it got fixes just recently ?. I'll give it a try with the > up-to-date kernel. Hasn't changed at all since it was introduced: 98262f2 v2.6.33-rc1 block: Allow devices to indicate whether discarded blocks are zeroed