Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Mar 2001 20:07:06 -0500
From:      James Housley <jim@thehousleys.net>
To:        freebsd-arch@freebsd.org
Subject:   Inherate nodump cause significant slow down of dump
Message-ID:  <3AB2B8BA.29C5E58E@thehousleys.net>
References:  <20010316232344.050CB3E1F@bazooka.unixfreak.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3AB2B8BA.29C5E58E>