From owner-freebsd-arch@FreeBSD.ORG Wed Apr 2 00:04:03 2008 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC0101065672 for ; Wed, 2 Apr 2008 00:04:03 +0000 (UTC) (envelope-from mfouts@danger.com) Received: from mx.danger.com (wall.danger.com [216.220.212.140]) by mx1.freebsd.org (Postfix) with ESMTP id BFEEA8FC1F for ; Wed, 2 Apr 2008 00:04:03 +0000 (UTC) (envelope-from mfouts@danger.com) Received: from danger.com (exchange3.danger.com [10.0.1.7]) by mx.danger.com (Postfix) with ESMTP id 41B01404C87; Tue, 1 Apr 2008 17:03:53 -0700 (PDT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Tue, 1 Apr 2008 17:04:01 -0700 Message-ID: In-Reply-To: <200804012226.m31MQ42O042173@apollo.backplane.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Flash disks and FFS layout heuristics Thread-Index: AciUR2Bdnxq/kqqoSkSjUVdQHavnoAAAaoGw References: <20080330231544.A96475@localhost> <200803310135.m2V1ZpiN018354@apollo.backplane.com> <200803312125.29325.qpadla@gmail.com> <200803311915.m2VJFSoR027593@apollo.backplane.com> <200803312219.m2VMJlkT029240@apollo.backplane.com> <200804011748.m31HmE1h039800@apollo.backplane.com> <200804012010.m31KAMpu041011@apollo.backplane.com> <200804012226.m31MQ42O042173@apollo.backplane.com> From: "Martin Fouts" To: "Matthew Dillon" Cc: freebsd-arch@freebsd.org Subject: RE: Flash disks and FFS layout heuristics X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Apr 2008 00:04:04 -0000 =20 > -----Original Message----- > From: Matthew Dillon [mailto:dillon@apollo.backplane.com]=20 > Sent: Tuesday, April 01, 2008 3:26 PM > To: Martin Fouts > Cc: freebsd-arch@freebsd.org > Subject: RE: Flash disks and FFS layout heuristics >=20 >=20 > What complete bullshit. If you want to argue technical=20 > merits, be my guest. So far you haven't made one single > technical point in any of your postings. My, my. Mr Dillon likes to be rude to people and tell them they are = 'stupid' and 'silly', but when he makes na=EFve comments about systems = he doesn't understand and gets called on it, suddenly it's "complete = bullshit." I can see why PHK broke off trying to educate you. > You've posted about your experience with NAND flash in embedded = systems, > very clearly with SMALL flash devices Acutally, you're jumping to conclusions, again, Matt. I mentioned what = size devices we used 3 years ago. I haven't spoken at all about the size = of devices I have experience with. > and simple filesystems, and that's fine, it's similar to my=20 > flash filesystem Actually, I mentioned some file systems which are not 'simple' by any = reasonable metric. You're the one who keeps trying to impose 'simple'. > experience (which, yes, was primarily on NOR devices but, no, that > doesn't magically make you an expert on NAND and me an=20 > idiot about it).=20 You're not an 'idiot' about NAND, your knowledge is merely limited to = reading specs, and as a consequence you're extrapolating beyond that = knowledge when you try to apply your theory to NAND, and experience has = shown that your extrapolations don't hold up. > Considering I've pretty much spent my entire life working with = hardware > that is about as ridiculous an assertion as you could make, but = clearly > you believe it. You need to stop being defensive in technical discussions; stop imposing = your presumptions on other peoples problems; and stop thinking that = anyone cares enough about you to make any assertions about your = background. I have *not* made any assertions, other than that you've made comments = about NAND which betray your lack of experience with it. You don't have = the experience, and your comments about 'trivial' problems, and = 'nonexistant' problems clearly shows that. You don't need to take my = word for it. You merely have to check on the state of the art in NAND = file systems for CE products. Oh, you should also stop putting words in my mouth. You're wrong again. = I've never thought you were an idiot and I don't think so now. You're = rude, arrogant, judgmental, and sure of your of your own skills beyond = your actual ability, but you're no idiot. > But then you generalized to the entire market and that's not fine. I've not made any such generalizations, Matt. You're projecting again. = *You* are the one who made the generation that all embedded problems = were trivial. The only thing I speak with authority about in this discussion is = convergent CE devices, and then I speak only of the ones I've worked on = and what experience with them has been. >=20 > Real filesystems are far more sophisticated then what you=20 > will ever see in the embedded flash product, Now there's a hasty generalization that betrays your attitude problem. = "real" file systems? First NAND filesystems are 'trivial'. Then it's = 'degenerate'. Now it's not 'real.' You'll never understand a problem that you dismiss without = investigating. > My interest is squarely with real filesystems targetted > to mass storage, these days. Yes. I pointed that out. Also pointed out that as a consequence you're = trying to apply approaches that don't work in CE devices. >=20 > I didn't start out smearing people, but if you are going to start > acting like an asshole then I have no problem ratcheting it up > to your level. Dillon, after all these years, I would have thought you'd gotten past = that blind spot. You don't call people 'silly' and 'stupid' and the = work they're doing "trivial" and "degenerate" *unless* you're acting = like an asshole. As long as I've known you, you've liked starting = pissing contests and then blaming the other party. PHK was wise to have = begged off when you started down that path, but I had some time on my = hands and thought others would benefit from a technical discussion. If = you want a pissing match, I suggest alt.flames, where I'm sure they'll = happily accommodate you. > Since you don't understand my position, let me lay it out for you > in simple terms: >=20 > * There's no point trying to adapt a flash-unaware filesystem to > become flash-aware. It is a complete waste of time. =20 "waste of time" is a value judgment that you don't have the background = to make for anyone but yourself. The marketplace, which supports at = least two such filesystems, disagrees with your judgment. > You might as well write a new filesystem. > If you want to use a flash-unaware > filesystem you use a translation layer, eat any=20 > performance issues, and be done with it. Congratulations. Welcome to FATFS on usb sticks. > * Just because flash-unaware filesystems HAVE To use a=20 > translation layer > doesn't mean that a translation layer is bad for a flash-aware > filesystem. That is correct. The FTL approach is suitable for certain types of = flash file systems, as I pointed out some number of emails back. It is = not suitable for all. > * A named-block translation layer can be an extremely=20 > valuable abstraction > for use in filesystem designs which directly integrate=20 > its features > (that is, the filesystem NAMES the block instead of=20 > ALLOCATES the > block). 'can be' makes for a pretty weak precondition, so sure, it 'can be'. >=20 > There is absolutely NOTHING inherently bad about the=20 > model from a=20 > performance point of view, particularly if your storage=20 > media requires > relocation (as NAND does). Either 'relocation' doesn't mean what you think it means, or NAND = doesn't require it. > The key point is that a=20 > named-block layer > takes over the functionality of all the indirect=20 > pointers that would > normally have to be manipulated by higher layers in the=20 > filesystem. Yes. This is what the FTL people do, except the granularity of their = named-block is the write unit. It has performance issues. > If you can integrate that into the physical storage=20 > requirements then > you kill two birds with one stone and get major=20 > performance benefits > from doing so. >=20 That's a big if. It has in practice turned out to be unattainable. I = await your demonstration to the contrary. > You are welcome to debate the points, but you'll get=20 > burned if you try > to take some sort of moral highground stand based on a=20 > few piddly flash > filesystems written over the course of a few years. =20 > Coding at that > level is fun and interesting but ultimately not very difficult. 'burned'. 'moral highground'. 'piddly'. 'not very difficult'. That's a = hell of a blindspot to your own behavior that you've got there, Matt. > Right now my work is with HAMMER. It's fun to theorize=20 > how I could make HAMMER into a flash-aware filesystem but=20 > I have no intention of actually doing so any time soon, or ever. >=20 I didn't think so. > Frankly, if I wanted to write a ground-up flash=20 > filesystem I could, it would not be difficult...=20 Of course not. People write file systems in undergraduate OS classes. > But I have no desire to do that at > this juncture and the lack of desire certainly does not=20 > invalidate my comments on the matter. What 'invalidates' your comments, is that others have tried what you've = outlined, in the way that you've outlined it, and it has failed. That, = coupled with your na=EFve claims about embedded systems not being = complex and your several mistaken claims about where the problems are or = aren't in such systems simply highlights that, as you say, you're having = fun speculating, but, as I say, your speculation would take you down = trodden paths to well known conclusions. > NAND is different from NOR but the differences can be=20 > explained pretty much in two paragraphs and most of the same concepts=20 > apply. The interesting aspects lie in the differences. > It isn't rocket science. I've done rocket science for a living. It's not that hard, and I've = always found that statement silly. >=20 > I am a very technical person. If you are going to argue=20 > merit, then you damn well better say WHY something doesn't > work, in detail, instead of simply stating that someone > random other entity couldn't make it work some point in > the past so therefor it is bad. You're a 'very technical person' with a very judgmental attitude and a = tendency to use emotionally loaded language that you later disclaim. = But no, I don't have to say WHY it doesn't work in detail, provided = someone else has already said so. I merely have to point out the = existence of the refutation. > If you do not know the WHY, precisely, then good $#%$#%$#% > luck designing anything that's actually sophisticated. >=20 "sophisticated", which I suppose is a synonmy for "complex", is an = interesting metric for a "very technical person" to apply. But actually, it's pretty easy to design sophisticated systems when you = don't understand the underlying issues. In practice it's more common to = make systems more sophisticated in the face of uncertainty, not less.