Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Feb 2000 15:49:16 +0000
From:      Mark Ovens <mark@ukug.uk.freebsd.org>
To:        "Michael J. Walsh" <mike@walshm.npt.nuwc.navy.mil>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Why is my new kernel so big?
Message-ID:  <20000225154915.D326@marder-1>
In-Reply-To: <Pine.BSF.4.21.0002250927430.11726-200000@walshm.npt.nuwc.navy.mil>; from mike@walshm.npt.nuwc.navy.mil on Fri, Feb 25, 2000 at 10:03:06AM -0500
References:  <Pine.BSF.4.21.0002250927430.11726-200000@walshm.npt.nuwc.navy.mil>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 25, 2000 at 10:03:06AM -0500, Michael J. Walsh wrote:
> 
> I just installed FreeBSD 3.4 (January 2000 CD-ROM release) for the first
> time on a machine with dual Pentium III 600 processors.  The only hard
> disk is devoted entirely to FreeBSD.  I did a novice install using
> sysintall, and everything works great!  I did not use UserConfig to
> configure the kernel for SMP at this point because it did not look
> possible.
> 
> Then I decided to configure my kernel for SMP.  I followed the procedure
> listed in Greg Lehey's book (3-rd edition) for rebuilding the
> kernel; specifically, I 
> 
> 1. Enabled the SMP options in a copy of the GENERIC cofiguration file
> (attached) and disabled the inappropriate cpu options,
> 
> machine         "i386"
> #cpu            "I386_CPU"
> #cpu            "I486_CPU"
> cpu             "I586_CPU"
> cpu             "I686_CPU"
> ident           GENERIC
> maxusers        32
> 
> # To make an SMP kernel, the next two are needed
> options         SMP                     # Symmetric MultiProcessor Kernel 
> options         APIC_IO                 # Symmetric (APIC) I/O
> # Optionally these may need tweaked, (defaults shown): 
> options         NCPU=2                  # number of CPUs 
> options         NBUS=3                  # number of busses  
> options         NAPIC=1                 # number of IO APICs
> options         NINTR=24                # number of INTs
> 
> 2. Added the MAXMEM = 128 Mb line to make sure my system recognizes all of
> its memory (probably unnecessary),
> 
> options         "MAXMEM=(128*1024)"     
> 
> I then did make to compile and link the new kernel.  My question is
> this: Why is my new kernel so big?  A long listing on the new kernel gives
> 
> > ll /sys/compile/WALSHM-SMP/kernel 
> -rwxr-xr-x  1 root  wheel  11568413 Feb 25 09:19
> /sys/compile/WALSHM-SMP/kernel*
> 
> The old kernel (the one created on installation) is considerably smaller:
> 
> > ll /kernel
> -rwxr-xr-x  1 root  wheel  2341252 Dec 29 21:57 /kernel*
> 

Somehow you've built a debug kernel. did you do ``config -g'' or have
you edited /etc/make.conf so that the line

    CFLAGS= -O -pipe

has ``-g'' as well?


> Doesn't sysinstall essentially use the GENERIC configuration file when
> building the first kernel?  Or is this file modified in some way
> during the installation by the hardware probes?
> 
> Many thanks in advance,
> 
> Mike
> 
> p.s.  I was a little confused by the output of mptable.  It said NBUS=3
> and NINTR=24, which I used in my new config file.  However, my motherboard
> (Matsonic MS7070SD) documentation says that it has
> 
> 1 32-bit AGP slot
> 4 32-bit PCI slots
> 2 16-bit ISA slots
> 
> What is NBUS refering to in the config file?  Also, I could not extract
> any information on the "number of INTs" in my motherboard documentation,
> so I'm taking the mptable output on faith.  I'm obviously not hardware
> literate.
>  
> ------------------------------------------------------------------------------
> Michael J. Walsh             Naval Undersea Warfare Center Divsion Newport, RI
> Phone: 401.832.4155      22 Combat Systems Dept, 221 Advanced Systems Division
> Fax: 401.832.4749                          2211, Information Processing Branch

> #
> # WALSHM-SMP -- Configuration file for Dual Pentium III 600 system
> #
> # For more information on this file, please read the handbook section on
> # Kernel Configuration Files:
> #
> #    http://www.freebsd.org/handbook/kernelconfig-config.html
> #
> # The handbook is also available locally in /usr/share/doc/handbook
> # if you've installed the doc distribution, otherwise always see the
> # FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the
> # latest information.
> #
> # An exhaustive list of options and more detailed explanations of the
> # device lines is also present in the ./LINT configuration file. If you are
> # in doubt as to the purpose or necessity of a line, check first in LINT.
> #
> # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.143.2.24 1999/12/05 01:56:42 luoqi Exp $
> 
> machine		"i386"
> #cpu		"I386_CPU"
> #cpu		"I486_CPU"
> cpu		"I586_CPU"
> cpu		"I686_CPU"
> ident		GENERIC
> maxusers	32
> 
> options		"MAXMEM=(128*1024)"
> 
> options 	MATH_EMULATE		#Support for x87 emulation
> options 	INET			#InterNETworking
> options 	FFS			#Berkeley Fast Filesystem
> options 	FFS_ROOT		#FFS usable as root device [keep this!]
> options 	MFS			#Memory Filesystem
> options 	MFS_ROOT		#MFS usable as root device, "MFS" req'ed
> options 	NFS			#Network Filesystem
> options 	NFS_ROOT		#NFS usable as root device, "NFS" req'ed
> options 	MSDOSFS			#MSDOS Filesystem
> options 	"CD9660"		#ISO 9660 Filesystem
> options 	"CD9660_ROOT"		#CD-ROM usable as root. "CD9660" req'ed
> options 	PROCFS			#Process filesystem
> options 	"COMPAT_43"		#Compatible with BSD 4.3 [KEEP THIS!]
> options 	SCSI_DELAY=15000	#Be pessimistic about Joe SCSI device
> options 	UCONSOLE		#Allow users to grab the console
> options 	FAILSAFE		#Be conservative
> options 	USERCONFIG		#boot -c editor
> options 	VISUAL_USERCONFIG	#visual boot -c editor
> options 	KTRACE			#ktrace(1) syscall trace support
> options 	SYSVSHM			#SYSV-style shared memory
> options 	SYSVMSG			#SYSV-style message queues
> options 	SYSVSEM			#SYSV-style semaphores
> 
> config		kernel	root on wd0
> 
> # To make an SMP kernel, the next two are needed
> options 	SMP			# Symmetric MultiProcessor Kernel
> options 	APIC_IO			# Symmetric (APIC) I/O
> # Optionally these may need tweaked, (defaults shown):
> options 	NCPU=2			# number of CPUs
> options 	NBUS=3			# number of busses
> options 	NAPIC=1			# number of IO APICs
> options 	NINTR=24		# number of INTs
> 
> controller	isa0
> controller	pnp0			# PnP support for ISA
> controller	eisa0
> controller	pci0
> 
> # Floppy drives
> controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2
> disk		fd0	at fdc0 drive 0
> disk		fd1	at fdc0 drive 1
> 
> # IDE controller and disks
> options		"CMD640"	# work around CMD640 chip deficiency
> controller	wdc0	at isa? port "IO_WD1" bio irq 14
> disk		wd0	at wdc0 drive 0
> disk		wd1	at wdc0 drive 1
> 
> controller	wdc1	at isa? port "IO_WD2" bio irq 15
> disk		wd2	at wdc1 drive 0
> disk		wd3	at wdc1 drive 1
> 
> # ATAPI devices
> options		ATAPI		#Enable ATAPI support for IDE bus
> options		ATAPI_STATIC	#Don't do it as an LKM
> device		acd0		#IDE CD-ROM
> device		wfd0		#IDE Floppy (e.g. LS-120)
> 
> # SCSI Controllers
> # A single entry for any of these controllers (ncr, ahb, ahc) is
> # sufficient for any number of installed devices.
> controller	ncr0		# NCR/Symbios Logic
> controller	ahb0		# EISA AHA1742 family
> controller	ahc0		# AHA2940 and onboard AIC7xxx devices
> controller	amd0		# AMD 53C974 (Teckram DC-390(T))
> controller	isp0		# Qlogic family
> controller	dpt0		# DPT Smartcache - See LINT for options!
> 
> controller	adv0	at isa? port ? cam irq ?
> controller	adw0
> controller	bt0	at isa? port ? cam irq ?
> controller	aha0	at isa? port ? cam irq ?
> controller	aic0	at isa? port ? cam irq ?
> 
> # SCSI peripherals
> # Only one of each of these is needed, they are dynamically allocated.
> controller	scbus0		# SCSI bus (required)
> device		da0		# Direct Access (disks)
> device		sa0		# Sequential Access (tape etc)
> device		cd0		# CD
> device		pass0		# Passthrough device (direct SCSI)
> 
> # Proprietary or custom CD-ROM Interfaces
> device		wt0	at isa? port 0x300 bio irq 5 drq 1
> device		mcd0	at isa? port 0x300 bio irq 10
> device		matcd0	at isa? port 0x230 bio
> device		scd0	at isa? port 0x230 bio
> 
> # atkbdc0 controls both the keyboard and the PS/2 mouse
> controller	atkbdc0	at isa? port IO_KBD tty
> device		atkbd0	at isa? tty irq 1
> device		psm0	at isa? tty irq 12
> 
> device		vga0	at isa? port ? conflicts
> 
> # splash screen/screen saver
> pseudo-device	splash
> 
> # syscons is the default console driver, resembling an SCO console
> device		sc0	at isa? tty
> 
> # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
> #device		vt0	at isa? tty
> #options 	XSERVER			# support for X server
> #options 	FAT_CURSOR		# start with block cursor
> # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
> #options 	PCVT_SCANSET=2		# IBM keyboards are non-std
> 
> # Floating point support - do not disable.
> device		npx0	at isa? port IO_NPX irq 13
> 
> # Power management support (see LINT for more options)
> device		apm0    at isa?	disable	flags 0x31 # Advanced Power Management
> 
> # PCCARD (PCMCIA) support
> #controller	card0
> #device		pcic0	at card?
> #device		pcic1	at card?
> 
> # Serial (COM) ports
> device		sio0	at isa? port "IO_COM1" flags 0x10 tty irq 4
> device		sio1	at isa? port "IO_COM2" tty irq 3
> device		sio2	at isa? disable port "IO_COM3" tty irq 5
> device		sio3	at isa? disable port "IO_COM4" tty irq 9
> 
> # Parallel port
> device		ppc0	at isa? port? flags 0x40 net irq 7
> controller	ppbus0			# Parallel port bus (required)
> device		lpt0	at ppbus?	# Printer
> device		plip0	at ppbus?	# TCP/IP over parallel
> device		ppi0	at ppbus?	# Parallel port interface device
> #controller	vpo0	at ppbus?	# Requires scbus and da0
> 
> # PCI Ethernet NICs.
> device		al0		# ADMtek AL981 (``Comet'')
> device		ax0		# ASIX AX88140A
> device		de0		# DEC/Intel DC21x4x (``Tulip'')
> device		fxp0		# Intel EtherExpress PRO/100B (82557, 82558)
> device		mx0		# Macronix 98713/98715/98725 (``PMAC'')
> device		pn0		# Lite-On 82c168/82c169 (``PNIC'')
> device		rl0		# RealTek 8129/8139
> device		sf0		# Adaptec AIC-6915 DuraLAN (``Starfire'')
> device		sis0		# Silicon Integrated Systems SiS 900/SiS 7016
> device		ste0		# Sundance ST201 (D-Link DFE-550)
> device		tl0		# Texas Instruments ThunderLAN
> device		tx0		# SMC 9432TX (83c170 ``EPIC'')
> device		vr0		# VIA Rhine, Rhine II
> device		vx0		# 3Com 3c590, 3c595 (``Vortex'')
> device		wb0		# Winbond W89C840F
> device		xl0		# 3Com 3c90x (``Boomerang'', ``Cyclone'')
> 
> # ISA Ethernet NICs.
> # Order is important here due to intrusive probes, do *not* alphabetize
> # this list of network interfaces until the probes have been fixed.
> # Right now it appears that the ie0 must be probed before ep0. See
> # revision 1.20 of this file.
> device		ed0	at isa? port 0x280 net irq 10 iomem 0xd8000
> device		ie0	at isa? port 0x300 net irq 10 iomem 0xd0000
> device		ep0	at isa? port 0x300 net irq 10
> device		ex0	at isa? port? net irq?
> device		fe0	at isa? port 0x300 net irq ?
> device		le0	at isa? port 0x300 net irq 5 iomem 0xd0000
> device		lnc0	at isa? port 0x280 net irq 10 drq 0
> device		cs0	at isa? port 0x300 net irq ?
> # requires PCCARD (PCMCIA) support to be activated
> #device		xe0	at isa? port? net irq ?
> 
> # PCCARD NIC drivers.
> # ze and zp take over the pcic and cannot coexist with generic pccard
> # support, nor the ed and ep drivers they replace.
> device		ze0	at isa? port 0x300 net irq 10 iomem 0xd8000
> device		zp0	at isa? port 0x300 net irq 10 iomem 0xd8000
> 
> # Pseudo devices - the number indicates how many units to allocated.
> pseudo-device	loop		# Network loopback
> pseudo-device	ether		# Ethernet support
> pseudo-device	sl	1	# Kernel SLIP
> pseudo-device	ppp	1	# Kernel PPP
> pseudo-device	tun	1	# Packet tunnel
> pseudo-device	pty	16	# Pseudo-ttys (telnet etc)
> pseudo-device	gzip		# Exec gzipped a.out's
> 
> # The `bpfilter' pseudo-device enables the Berkeley Packet Filter.
> # Be aware of the administrative consequences of enabling this!
> # The number of devices determines the maximum number of
> # simultaneous BPF clients programs runnable.
> pseudo-device	bpfilter 1	#Berkeley packet filter


-- 
	Microsoft: Where do you want to go today?
	Linux:     Where do you want to go tomorrow?
	BSD:       Are you guys coming, or what?
			              -Poster at LinuxWorld 2000
________________________________________________________________
      FreeBSD - The Power To Serve http://www.freebsd.org
      My Webpage http://ukug.uk.freebsd.org/~mark/
mailto:mark@ukug.uk.freebsd.org             http://www.radan.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000225154915.D326>