From owner-freebsd-current@FreeBSD.ORG Thu May 25 23:15:55 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1CFFB16A704 for ; Thu, 25 May 2006 23:15:55 +0000 (UTC) (envelope-from mf.danger@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.187]) by mx1.FreeBSD.org (Postfix) with ESMTP id 37CFF43D64 for ; Thu, 25 May 2006 23:15:50 +0000 (GMT) (envelope-from mf.danger@gmail.com) Received: by nf-out-0910.google.com with SMTP id y25so58083nfb for ; Thu, 25 May 2006 16:15:49 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=M16a2ySB0jL01bdqW+odAJTgGviv4fdINCvpcx3yEmSU+xYEUg3qMkYnnUFOmNS5rtSKkelhGbXzjQ8Bt8QtRa81txR7b7Y8lxhnqGOvAt9ONwhWWXhbQljbKk0s+pz5xT6J19gsKi68eVpU3gLanr5Y+iPxixsLnstLSquzLMw= Received: by 10.48.219.1 with SMTP id r1mr7110998nfg; Thu, 25 May 2006 16:08:57 -0700 (PDT) Received: by 10.49.49.17 with HTTP; Thu, 25 May 2006 16:08:57 -0700 (PDT) Message-ID: <9f7850090605251608p27c71475wa6d245f8a5f1185f@mail.gmail.com> Date: Thu, 25 May 2006 16:08:57 -0700 From: "marty fouts" To: "Poul-Henning Kamp" In-Reply-To: <5583.1148593117@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <20060525210132.GD28128@groat.ugcs.caltech.edu> <5583.1148593117@critter.freebsd.dk> Cc: Paul Allen , current@freebsd.org, Olivier Gautherot Subject: Re: FreeBSD's embedded agenda X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 May 2006 23:15:55 -0000 On 5/25/06, Poul-Henning Kamp wrote: > I wish I could be more specific to guide you and others onto the > right track here, but for now I will have to reiterate: Tailor > the filesystem to flash devices, there are so many benefits to > be had that way. I'd go a step further. I advocate treating NOR and NAND devices seperately. There are enough difference in their behavior to justify optimizing implementations for each. Compare JFFS2 to YAFFS2 on NAND and you'll get an example of how this can happen. I would advocate a split-but-aware approach. A flash translation layer, which manages bad blocks, wear leveling, and even garbage collection, is a good logical separate entity, provided it exposes hooks to the file system to allow the FS to teach it about dead blocks. Couple this with a well designed journaling FS, and you get an FS that overcomes the uglier properties of flash, especially of large block size NAND, but that can live above layers that are optimized for NOR, NAND, or the coming hybrid flash models. (You can easily argue about where the garbage collection belongs. I've done it both ways.)