NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
misc/50046: Slow rc multiuser boot in 7.0 and current
>Number: 50046
>Category: misc
>Synopsis: Slow rc multiuser boot in 7.0 and current
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: misc-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Jul 12 22:00:00 +0000 2015
>Originator: Frank Wille
>Release: netbsd-7
>Organization:
NetBSD
>Environment:
NetBSD/amiga 7.0_RC1
>Description:
Since the workaround for PR 48714 the multiuser boot in 7.0 and current has become very slow, which especially affects smaller single-CPU platforms.
It has been reported on port-amiga (A3000 and A4000/68060) by myself:
http://mail-index.netbsd.org/port-amiga/2015/01/25/msg007942.html
On x68k (XM6i/68030) by Tetsuya Isaki:
http://mail-index.netbsd.org/port-amiga/2015/02/01/msg007951.html
And on Sparc (via qemu) by Arto Huusko:
http://mail-index.netbsd.org/netbsd-users/2015/07/12/msg016476.html
The above mentioned workaround introduces a background process in rc, which sends a "nop" every three seconds. Removing this passage from rc:
--- rc.orig 2015-01-16 22:17:31.000000000 +0100
+++ rc 2015-05-31 14:47:06.000000000 +0200
@@ -120,24 +120,6 @@
kill -0 $RC_PID >/dev/null 2>&1 || RC_PID=$$
#
- # As long as process $RC_PID is still running, send a "nop"
- # metadata message to the postprocessor every few seconds.
- # This should help flush partial lines that may appear when
- # rc.d scripts that are NOT marked with "KEYWORD: interactive"
- # nevertheless attempt to print prompts and wait for input.
- #
- (
- # First detach from tty, to avoid intercepting SIGINFO.
- eval "exec ${_rc_original_stdout_fd}<&-"
- eval "exec ${_rc_original_stderr_fd}<&-"
- exec </dev/null >/dev/null 2>&1
- while kill -0 $RC_PID ; do
- print_rc_metadata "nop"
- sleep 3
- done
- ) &
... makes booting noticable faster. In this case from 5 minutes to 4 minutes.
From /var/run/rc.log:
Original:
[/etc/rc starting at Sun May 31 13:27:54 CEST 2015]
...
[/etc/rc finished at Sun May 31 13:32:55 CEST 2015]
Without "nop":
[/etc/rc starting at Sun May 31 14:48:48 CEST 2015]
...
[/etc/rc finished at Sun May 31 14:52:59 CEST 2015]
There are probably other factors involved to make booting much slower
than under netbsd-6, but this one is unnecessary.
>How-To-Repeat:
Boot a slow single-CPU system into multiuser mode and compare the time it needs with netbsd-6.
>Fix:
Reverting the workaround for PR 48714 partly fixes it.
Home |
Main Index |
Thread Index |
Old Index