From owner-freebsd-arch Fri Mar 16 17: 7:15 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 9397237B718 for ; Fri, 16 Mar 2001 17:07:12 -0800 (PST) (envelope-from jim@thehousleys.net) Received: (from root@localhost) by thehousleys.net (8.11.3/8.11.2) id f2H17BF02004 for freebsd-arch@freebsd.org; Fri, 16 Mar 2001 20:07:11 -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 f2H176f01996 for ; Fri, 16 Mar 2001 20:07:06 -0500 (EST) (envelope-from jim@thehousleys.net) Message-ID: <3AB2B8BA.29C5E58E@thehousleys.net> Date: Fri, 16 Mar 2001 20:07:06 -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: freebsd-arch@freebsd.org Subject: Inherate nodump cause significant slow down of dump References: <20010316232344.050CB3E1F@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 The changes to src/sbin/dump/traverse.c (1.10.2.2) cause significant slow down of the dump estimate phase. Specifically Phase II. My /usr partition has about 2.5G of data including ports. I had just the /usr/ports director flagged as nodump. I think that this needs to be backed out, or fixed before the 4.3-RELEASE. This is very easy to reproduce. I am assuming that /usr is /dev/ad0s1f and that ports is on that file system for the following instructions. For all of these example abort the dump when Phase II finishes with the "DUMP: estimate ..... blocks.." message appears. dump 0sf 1048576 /dev/null /dev/ad0s1f -- this takes 9 seconds to finish Phase II for all versions. dump 0hsf 0 1048576 /dev/null /dev/ad0s1f -- this takes 9 seconds to finish Phase II for all versions. chflags nodump /usr/ports ; dump 0sf 1048576 /dev/null /dev/ad0s1f -- this takes 9 seconds to finish Phase II for all versions. chflags nodump /usr/ports ; dump 0hsf 0 1048576 /dev/null /dev/ad0s1f -- this takes 9 seconds to finish Phase II for version 1.10.2.1 of src/sbin/dump/traverse.c chflags nodump /usr/ports ; dump 0hsf 0 1048576 /dev/null /dev/ad0s1f -- this takes 38 minutes to finish Phase II for version 1.10.2.1 of src/sbin/dump/traverse.c A I believe that it is because it repeats once for each file in the subtree: msg("mapping (Pass II) [directories]\n"); while (anydirskipped) { anydirskipped = mapdirs(maxino, &tapesize); } I have not yet tested: chflags -R nodump /usr/ports ; dump 0hsf 0 1048576 /dev/null /dev/ad0s1f To see if it is quicker. I think the problem may actually be in mapfiles() and not mapdirs(). The above test will tell me, I am also going to add a counter in the above loop to verify this theory. However I am in the middle of a build world back towards a more recent version. But after dinner I should be able to test this. I welcome independent testing. 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 --------------------------------------------------------------------- Progress (n) : What led from smart users in front of dumb terminals to dumb users in front of smart terminals. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message