From owner-freebsd-arch Fri Mar 16 20: 0:48 2001 Delivered-To: freebsd-arch@freebsd.org Received: from thehousleys.net (frenchknot.ne.mediaone.net [24.147.224.201]) by hub.freebsd.org (Postfix) with ESMTP id 0A3B137B718 for ; Fri, 16 Mar 2001 20:00:45 -0800 (PST) (envelope-from jim@thehousleys.net) Received: (from root@localhost) by thehousleys.net (8.11.3/8.11.2) id f2H40ZU04977; Fri, 16 Mar 2001 23:00:35 -0500 (EST) (envelope-from jim@thehousleys.net) Received: from thehousleys.net (baby.int.thehousleys.net [192.168.0.24]) by thehousleys.net (8.11.3/8.11.3) with ESMTP id f2H40Xf04969; Fri, 16 Mar 2001 23:00:33 -0500 (EST) (envelope-from jim@thehousleys.net) Message-ID: <3AB2E161.949AE10C@thehousleys.net> Date: Fri, 16 Mar 2001 23:00:33 -0500 From: James Housley X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.12 i386) X-Accept-Language: en MIME-Version: 1.0 To: Dima Dorfman Cc: freebsd-arch@freebsd.org Subject: Re: Inherate nodump cause significant slow down of dump References: <20010317015657.C47D03E1E@bazooka.unixfreak.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: by AMaViS perl-10 Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I see that my suggested code below won't work because we are pasring the tree in inode number instead of a depth traversal of the tree. I know with out inheriting the nodump flag the code would beable to read from the disk much faster in sequential order. Maybe what we now need is a second verion of mapfiles() that does a depth traversal of the tree iff dump is called with -h. This will be quicker then the current if a directory actually has the nodump flag set, but will be slower (hopefully not much) if there is no nodump flag. With the depth traversal processing can stop when a directory is found that is flaged as no dump. A second copy of mapdirs() might also be needed. Jim > > Why is a directory added without checking for the nodump flag? Because > isn't then just removed later in mapdirs()? Wouldn't this work better? > I don't fully understand all the code yet, but I am looking. > > /* > * All dirs go in dumpdirmap; only inodes that are to > * be dumped go in usedinomap and dumpinomap, however. > */ > if (mode == IFDIR) > - SETINO(ino, dumpdirmap); > + if (WANTTODUMP(dp)) > + SETINO(ino, dumpdirmap); > + else { > + anydirskipped = 1; > + continue; > + } > if (WANTTODUMP(dp)) { > SETINO(ino, usedinomap); > SETINO(ino, dumpinomap); > if (mode != IFREG && mode != IFDIR && mode != IFLNK) > *tapesize += 1; > else > *tapesize += blockest(dp); > continue; > } > if (mode == IFDIR) > anydirskipped = 1; > > > Jim -- /"\ ASCII Ribbon Campaign . \ / - NO HTML/RTF in e-mail . X - NO Word docs in e-mail . / \ ----------------------------------------------------------------- jeh@FreeBSD.org http://www.FreeBSD.org The Power to Serve jim@TheHousleys.Net http://www.TheHousleys.net --------------------------------------------------------------------- If it happens once, it's a bug. If it happens twice, it's a feature. If it happens more than twice, it's windows. -- Luiz de Barros To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message