From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Freemyer Subject: Re: [PATCH, RFC] xfs: batched discard support Date: Thu, 20 Aug 2009 13:19:20 -0400 Message-ID: <87f94c370908201019i406e74a0s59c67f56ec2c9c16@mail.gmail.com> References: <20090816004705.GA7347@infradead.org> <20090819203916.GA25296@elte.hu> <4A8CA956.2060406@rtr.ca> <4A8D5442.1000302@redhat.com> <4A8D5FDB.7080505@rtr.ca> <4A8D60C1.6000809@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Mark Lord , Ingo Molnar , Christoph Hellwig , Peter Zijlstra , Paul Mackerras , Linus Torvalds , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, jens.axboe@oracle.com, "IDE/ATA development list" , Neil Brown To: Ric Wheeler Return-path: In-Reply-To: <4A8D60C1.6000809@redhat.com> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Thu, Aug 20, 2009 at 10:42 AM, Ric Wheeler wrote: > On 08/20/2009 10:38 AM, Mark Lord wrote: >> >> Ric Wheeler wrote: >>> >>> Note that returning consistent data is critical for devices that are >>> used in a RAID group since you will need each RAID block that is used >>> to compute the parity to continue to return the same data until you >>> overwrite it with new data :-) >>> >>> If we have a device that does not support this (or is misconfigured >>> not to do this), we should not use those devices in an MD group & do >>> discard against it... >> >> .. >> >> Well, that's a bit drastic. But the RAID software should at least >> not issue TRIM commands in ignorance of such. > > If the storage can return different data in a sequence of READ requests of > the same sector (with no writes), there is nothing RAID could do. It would > see total garbage... > >> Would it still be okay to do the TRIMs when the entire parity stripe >> (across all members) is being discarded? (As opposed to just partial >> data there being dropped) > > This should be safe if the MD bitmaps would prevent us from trying to > READ/regenerate parity for that stripe... > > ric The harder thing for mdraid is putting a stripe back in service. If even a single sector is written to a "discarded" stripe, the entire stripe has to be written with determinate data that has the right parity. ie. Only full stripes can be discarded and only full-stripes can be put back in service. Greg -- Greg Freemyer Head of EDD Tape Extraction and Processing team Litigation Triage Solutions Specialist http://www.linkedin.com/in/gregfreemyer Preservation and Forensic processing of Exchange Repositories White Paper - The Norcross Group The Intersection of Evidence & Technology http://www.norcrossgroup.com