Date: Mon, 9 Dec 2002 11:19:13 -0800 From: Brooks Davis <brooks@one-eyed-alien.net> To: Kirk McKusick <mckusick@beastie.mckusick.com> Cc: Brooks Davis <brooks@one-eyed-alien.net>, Nate Lawson <nate@root.org>, Archie Cobbs <archie@dellroad.org>, freebsd-current@FreeBSD.ORG Subject: Re: backgroud fsck is still locking up system (fwd) Message-ID: <20021209111913.A11284@Odin.AC.HMC.Edu> In-Reply-To: <200212070152.gB71qc59094441@beastie.mckusick.com>; from mckusick@beastie.mckusick.com on Fri, Dec 06, 2002 at 05:52:38PM -0800 References: <20021206104445.A1950@Odin.AC.HMC.Edu> <200212070152.gB71qc59094441@beastie.mckusick.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--7JfCtLOvnd9MIVvH
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Fri, Dec 06, 2002 at 05:52:38PM -0800, Kirk McKusick wrote:
> Adding a two minute delay before starting background fsck
> sounds like a very good idea to me. Please send me your
> suggested change.
Here it is. As written it doesn't add the delay, but you can change
etc/defaults/rc.conf to do that it desired.
-- Brooks
--=20
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4
Index: etc/rc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /usr/cvs/src/etc/rc,v
retrieving revision 1.323
diff -u -p -r1.323 rc
--- etc/rc 26 Nov 2002 17:51:03 -0000 1.323
+++ etc/rc 4 Dec 2002 23:08:41 -0000
@@ -982,8 +982,14 @@ esac
# Start background fsck checks if necessary
case ${background_fsck} in
[Yy][Ee][Ss])
- echo 'Starting background filesystem checks'
- nice -4 fsck -B -p 2>&1 | logger -p daemon.notice &
+ bgfsck_msg=3D'Starting background file system checks'
+ if [ ${background_fsck_delay:=3D0} -gt 0 ]; then
+ bgfsck_msg=3D"${bgfsck_msg} in ${background_fsck_delay} seconds"
+ fi
+ echo "${bgfsck_msg}."
+
+ (sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \
+ logger -p daemon.notice &
;;
esac
=20
Index: etc/defaults/rc.conf
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /usr/cvs/src/etc/defaults/rc.conf,v
retrieving revision 1.164
diff -u -p -r1.164 rc.conf
--- etc/defaults/rc.conf 6 Dec 2002 05:23:37 -0000 1.164
+++ etc/defaults/rc.conf 6 Dec 2002 18:02:18 -0000
@@ -40,6 +40,7 @@ script_name_sep=3D" " # Change if your sta
rc_conf_files=3D"/etc/rc.conf /etc/rc.conf.local"
fsck_y_enable=3D"NO" # Set to YES to do fsck -y if the initial preen fails.
background_fsck=3D"YES" # Attempt to run fsck in the background where poss=
ible.
+background_fsck_delay=3D"0" # Time to wait (seconds) before starting the f=
sck.
extra_netfs_types=3D"NO" # List of network extra filesystem types for dela=
yed
# mount at startup (or NO).
=20
Index: etc/rc.d/bgfsck
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /usr/cvs/src/etc/rc.d/bgfsck,v
retrieving revision 1.2
diff -u -p -r1.2 bgfsck
--- etc/rc.d/bgfsck 28 Jul 2002 03:38:10 -0000 1.2
+++ etc/rc.d/bgfsck 9 Oct 2002 23:31:45 -0000
@@ -11,9 +11,20 @@
=20
name=3D"background-fsck"
rcvar=3D"background_fsck"
-start_precmd=3D"echo 'Starting background file system checks.'"
-start_cmd=3D"nice -4 fsck -B -p 2>&1 | logger -p daemon.notice &"
+start_cmd=3D"bgfsck_start"
stop_cmd=3D":"
+
+bgfsck_start ()
+{
+ bgfsck_msg=3D'Starting background file system checks'
+ if [ ${background_fsck_delay:=3D0} -gt 0 ]; then
+ bgfsck_msg=3D"${bgfsck_msg} in ${background_fsck_delay} seconds"
+ fi
+ echo "${bgfsck_msg}."
+
+ (sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \
+ logger -p daemon.notice &
+}
=20
load_rc_config $name
run_rc_command "$1"
Index: share/man/man5/rc.conf.5
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /usr/cvs/src/share/man/man5/rc.conf.5,v
retrieving revision 1.166
diff -u -p -r1.166 rc.conf.5
--- share/man/man5/rc.conf.5 29 Nov 2002 11:39:19 -0000 1.166
+++ share/man/man5/rc.conf.5 4 Dec 2002 23:11:53 -0000
@@ -734,6 +734,11 @@ If set to
the system will attempt to run
.Xr fsck 8
in the background where possible.
+.It Va background_fsck_delay
+.Pq Vt int
+The amount of time in seconds to sleep before starting a background fsck.
+Setting this to a non-zero number may allow large applications such as
+the X server to start before disk I/O bandwidth is monopolized by fsck.
.It Va extra_netfs_types
.Pq Vt str
If set to something other than
--7JfCtLOvnd9MIVvH
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE99OyuXY6L6fI4GtQRAqa/AJ9PGOtayJitWq2D+cxQ2/HqU/LvMQCbBwCn
ATCIAX+bIie1LYnYqxpjDtk=
=gwyo
-----END PGP SIGNATURE-----
--7JfCtLOvnd9MIVvH--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021209111913.A11284>
