From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19892 invoked by alias); 16 Oct 2003 10:25:33 -0000 Mailing-List: contact ecos-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@sources.redhat.com Received: (qmail 19881 invoked from network); 16 Oct 2003 10:25:31 -0000 Received: from unknown (HELO pentafluge.infradead.org) (213.86.99.235) by sources.redhat.com with SMTP; 16 Oct 2003 10:25:31 -0000 Received: from fish.redhat.com ([213.86.99.237] helo=hades.cambridge.redhat.com) by pentafluge.infradead.org with asmtp (Exim 4.22 #5 (Red Hat Linux)) id 1AA5Kw-0005TY-KK; Thu, 16 Oct 2003 11:26:30 +0100 From: David Woodhouse To: Thomas Koeller Cc: ecos-discuss@sources.redhat.com, linux-mtd@lists.infradead.org In-Reply-To: <200310151330.02902.thomas.koeller@baslerweb.com> References: <1065598642.12197.6.camel@famine> <200310151211.29172.thomas.koeller@baslerweb.com> <1066215157.14783.933.camel@hades.cambridge.redhat.com> <200310151330.02902.thomas.koeller@baslerweb.com> Content-Type: text/plain Message-Id: <1066299929.14783.2697.camel@hades.cambridge.redhat.com> Mime-Version: 1.0 Date: Thu, 16 Oct 2003 10:25:00 -0000 Content-Transfer-Encoding: 7bit X-SA-Exim-Mail-From: dwmw2@infradead.org X-SA-Exim-Scanned: No; SAEximRunCond expanded to false X-Pentafluge-Mail-From: Subject: Re: [ECOS] Stress testing JFFS2 X-SW-Source: 2003-10/txt/msg00292.txt.bz2 On Wed, 2003-10-15 at 13:30 +0200, Thomas Koeller wrote: > I do not think this path leads anywhere I want to go. The flash size > was chosen to meet the expected storage requirements, which means that > at some point the flash will be filled with valid data and consequently > there will be few obsoleted nodes. I expect this to be true for most > systems. A sane observation. > > Omitting the 'totlen' field should be relatively simple if you're not > > freeing obsolete refs. Observe that in 99% of cases, it's true that > > > > ref->totlen == ref_offset(ref->next_phys) - ref_offset(ref) > > > > Make it 100% and make me believe it, and you can remove totlen from the > > structure. > > > > I will consider that. OK... I've made it slightly easier for you by switching all use of 'ref->totlen' to an accessor function ref_totlen(c, jeb, ref), where 'jeb' can be NULL if the caller doesn't know it -- it _can_ be calculated in the relatively rare case that it's required, but if it's already to hand we might as well use it. I've written what I suspect will be the new version of that accessor function, and included some sanity checks for it. It's in #if 0 for now since we know it'll be broken -- look in nodelist.h. We may end up wanting it out of line, since it's not entirely trivial. To make it usable, we need to ensure that we have a node reference for areas of dirty space which we've previously been ignoring -- scan.c can no longer just skip over stuff it ignores but must allocate node references for it, and we must allocate node references for the wasted space at the end of eraseblocks when we've filled them _almost_ to the end and then filed them elsewhere. It should be relatively simple. -- dwmw2 -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss