Subject: kern/29262: Incredible slow LKM loading in 2.0 versus 1.6.2
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <kessi@teles.de>
List: netbsd-bugs
Date: 02/07/2005 11:19:00
>Number:         29262
>Category:       kern
>Synopsis:       Incredible slow LKM loading in 2.0 versus 1.6.2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 07 11:19:00 +0000 2005
>Originator:     Jens Kessmeier
>Release:        2.0
>Organization:
TELES AG
>Environment:
NetBSD iswitch2.teles.de 2.0 NetBSD 2.0 (ISWITCH) #17: Thu Feb  3 12:46:08  2005  admin@COMPILE:/usr2/isdn/NetBSD-2.0/usr/src/sys/arch/i386/compile/ISWITCH i386

>Description:
Loading time on NetBSD 1.6.2 is more or less 15 seconds. On NetBSD 2.0, same machine and test case, 180 seconds.

Here is the test script:

#!/bin/sh

KDRV=/usr/isdn/kdrv

date; echo "Loading tlsload"
modload -s -S -o $KDRV/tlsload.lnk  $KDRV/tlsload.o
date; echo "Loading streams"
modload -s -S -o $KDRV/streams.lnk -A $KDRV/tlsload.lnk $KDRV/streams.o
date; echo "Loading tlstrc"
modload -s -S -o $KDRV/tlstrc.lnk -A $KDRV/streams.lnk $KDRV/tlstrc.o
date; echo "Loading tlspir"
modload -s -A $KDRV/tlstrc.lnk $KDRV/tlspir.o
date; echo "Loading tlsp8"
modload -s -A $KDRV/tlstrc.lnk $KDRV/tlsp8.o
date; echo "Loading tlssw1"
modload -s -A $KDRV/tlstrc.lnk $KDRV/tlssw1.o
date; echo "Loading tlssw1vx"
modload -s -A $KDRV/tlstrc.lnk $KDRV/tlssw1vx.o
date; echo "Loading tlsmtn"
modload -s -A $KDRV/tlstrc.lnk $KDRV/tlsmtn.o
date; echo "Loading tlstnx"
modload -s -A $KDRV/tlstrc.lnk $KDRV/tlstnx.o
date; echo "Loading tlssw23"
modload -s -A $KDRV/tlstrc.lnk $KDRV/tlssw23.o
date; echo "Loading tlstoner"
modload -s -A $KDRV/tlstrc.lnk $KDRV/tlstoner.o
date; echo "End "

The 1.6.2 output looks like:

Mon Feb  7 12:21:58 CET 2005
Loading tlsload
Module loaded as ID 0
Mon Feb  7 12:21:59 CET 2005
Loading streams
Module loaded as ID 1
Mon Feb  7 12:22:00 CET 2005
Loading tlstrc
Module loaded as ID 2
Mon Feb  7 12:22:02 CET 2005
Loading tlspir
Module loaded as ID 3
Mon Feb  7 12:22:04 CET 2005
Loading tlsp8
Module loaded as ID 4
Mon Feb  7 12:22:05 CET 2005
Loading tlssw1
Module loaded as ID 5
Mon Feb  7 12:22:07 CET 2005
Loading tlssw1vx
Module loaded as ID 6
Mon Feb  7 12:22:09 CET 2005
Loading tlsmtn
Module loaded as ID 7
Mon Feb  7 12:22:10 CET 2005
Loading tlstnx
Module loaded as ID 8
Mon Feb  7 12:22:12 CET 2005
Loading tlssw23
Module loaded as ID 9
Mon Feb  7 12:22:14 CET 2005
Loading tlstoner
Module loaded as ID 10
Mon Feb  7 12:22:15 CET 2005
End

And the NetBSD 2.0 output:

Mon Feb  7 12:35:32 CET 2005
Loading tlsload
Module loaded as ID 0
Mon Feb  7 12:35:33 CET 2005
Loading streams
Module loaded as ID 1
Mon Feb  7 12:35:36 CET 2005
Loading tlstrc
Module loaded as ID 2
Mon Feb  7 12:35:52 CET 2005
Loading tlspir
Module loaded as ID 3
Mon Feb  7 12:36:09 CET 2005
Loading tlsp8
Module loaded as ID 4
Mon Feb  7 12:36:26 CET 2005
Loading tlssw1
Module loaded as ID 5
Mon Feb  7 12:36:46 CET 2005
Loading tlssw1vx
Module loaded as ID 6
Mon Feb  7 12:37:04 CET 2005
Loading tlsmtn
Module loaded as ID 7
Mon Feb  7 12:37:21 CET 2005
Loading tlstnx
Module loaded as ID 8
Mon Feb  7 12:37:40 CET 2005
Loading tlssw23
Module loaded as ID 9
Mon Feb  7 12:38:14 CET 2005
Loading tlstoner
Module loaded as ID 10
Mon Feb  7 12:38:31 CET 2005
End 

>How-To-Repeat:

>Fix: