Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Mar 2000 11:30:44 -0800
From:      Parag Patel <parag@cgt.com>
To:        freebsd-current@freebsd.org
Subject:   4.0 kernel size quite a bit larger than 3.4?
Message-ID:  <70531.953494244@pinhead.parag.codegen.com>

next in thread | raw e-mail | index | archive | help
This is a multipart MIME message.

--==_Exmh_-15024258400
Content-Type: text/plain; charset=us-ascii


Has anyone else noticed their 4.0 kernel is quite a bit larger than 3.4?
I've been building 4.0 kernels before I try to upgrade pinhead from
3-CURRENT to 4.  I started with GENERIC in both cases and simply turned
off all the features/drivers I don't need and added the ones I do.
(/kernel is 3.4):

    $ ll /kernel kernel; size /kernel kernel 
    -rwxr-xr-x  1 root   wheel  1877424 Feb  7 14:15 /kernel
    -rwxr-xr-x  1 parag  bin    2331259 Mar 19 11:28 kernel
       text    data     bss     dec     hex filename
    1451231  109080  158188 1718499  1a38e3 /kernel
    1721108  234908  120376 2076392  1faee8 kernel

~280Kb of .text seems a bit excessive.  I completely stripped both
images and compared them but the size difference is still the same.

(Both config files are attached below.)

It's hard to diff the config files as so much stuff has changed and
rearranged between the 3.4 and 4.0.  A manual exam/compare of both
didn't point out anything obvious to me but perhaps I've simply missed
something big.  I prefer to build everything into the kernel rather than
use KLDs just to be sure I haven't forgotten to update the latter.

(I searched the mail archives but didn't find anything obvious.)

Thanks!


	-- Parag Patel


--==_Exmh_-15024258400
Content-Type: text/plain ; name="PINHEAD-4.0"; charset=us-ascii
Content-Description: PINHEAD-4.0
Content-Disposition: attachment; filename="PINHEAD-4.0"

#
# PINHEAD config file developed from:
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# 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.246 2000/03/09 16:32:55 jlemon Exp $

machine		i386
#cpu		I386_CPU
#cpu		I486_CPU
cpu		I586_CPU
cpu		I686_CPU
ident		PINHEAD
maxusers	32

#makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols

#options 	MATH_EMULATE		#Support for x87 emulation
options 	INET			#InterNETworking
#options 	INET6			#IPv6 communications protocols
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	MFS			#Memory Filesystem
#options 	MD_ROOT			#MD is a potential root device
options 	NFS			#Network Filesystem
#options 	NFS_ROOT		#NFS usable as root device, NFS required
#options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
#options 	CD9660_ROOT		#CD-ROM usable as root, CD9660 required
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=3000		#Delay (in ms) before probing SCSI
options 	UCONSOLE		#Allow users to grab the console
#options 	USERCONFIG		#boot -c editor
#options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extentions
options 	_KPOSIX_PRIORITY_SCHEDULING
#options		ICMP_BANDLIM		#Rate limit bad replies

options		DDB
options		INVARIANTS
options		INVARIANT_SUPPORT
options		MD5
options		COMPAT_LINUX
#options		VESA
options		IDE_DELAY=3000
options 	NETATALK		#Appletalk communications protocols
options		SOFTUPDATES		#Copyrighted FFS changes

# 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=4			# number of busses
#options 	NAPIC=1			# number of IO APICs
#options 	NINTR=24		# number of INTs

device		isa
#device		eisa
device		pci

# Floppy drives
device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0
#device		fd1	at fdc0 drive 1

# ATA and ATAPI devices
#device		ata0	at isa? port IO_WD1 irq 14
#device		ata1	at isa? port IO_WD2 irq 15
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives
#device		atapifd			# ATAPI floppy drives
#device		atapist			# ATAPI tape drives
options 	ATA_STATIC_ID		#Static device numbering
#options 	ATA_ENABLE_ATAPI_DMA	#Enable DMA on ATAPI devices

# misc stuff
device		joy0	at isa? port "IO_GAME"
device		pcm

# SCSI Controllers
#device		ahb		# EISA AHA1742 family
device		ahc		# AHA2940 and onboard AIC7xxx devices
options		AHC_ALLOW_MEMIO
#device		amd		# AMD 53C974 (Teckram DC-390(T))
#device		dpt		# DPT Smartcache - See LINT for options!
#device		isp		# Qlogic family
device		ncr		# NCR/Symbios Logic
#device		sym		# NCR/Symbios Logic (newer chipsets)

device		adv0	at isa?
device		adw
device		bt0	at isa?
device		aha0	at isa?
device		aic0	at isa?

# SCSI peripherals
device		scbus		# SCSI bus (required)
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)

# RAID controllers
#device		ida		# Compaq Smart RAID
#device		amr		# AMI MegaRAID
#device		mlx		# Mylex DAC960 family

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1
device		psm0	at atkbdc? irq 12

device		vga0	at isa?

# splash screen/screen saver
#pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa?

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa?
#options 	XSERVER			# support for X server on a vt console
#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 nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
#device		apm0    at nexus? disable flags 0x20 # Advanced Power Management

# PCCARD (PCMCIA) support
#device		card
#device		pcic0	at isa? irq 10 port 0x3e0 iomem 0xd0000
#device		pcic1	at isa? irq 11 port 0x3e2 iomem 0xd4000 disable

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3
device		sio2	at isa? port IO_COM3 irq 5
device		sio3	at isa? port IO_COM4 irq 9

# Parallel port
device		ppc0	at isa? irq 7
device		ppbus		# Parallel port bus (required)
device		lpt		# Printer
#device		plip		# TCP/IP over parallel
device		ppi		# Parallel port interface device
#device		vpo		# Requires scbus and da


# PCI Ethernet NICs.
#device		de		# DEC/Intel DC21x4x (``Tulip'')
device		fxp		# Intel EtherExpress PRO/100B (82557, 82558)
#device		tx		# SMC 9432TX (83c170 ``EPIC'')
#device		vx		# 3Com 3c590, 3c595 (``Vortex'')
#device		wx		# Intel Gigabit Ethernet Card (``Wiseman'')

# PCI Ethernet NICs that use the common MII bus controller code.
#device		miibus		# MII bus support
#device		dc		# DEC/Intel 21143 and various workalikes
#device		rl		# RealTek 8129/8139
#device		sf		# Adaptec AIC-6915 (``Starfire'')
#device		sis		# Silicon Integrated Systems SiS 900/SiS 7016
#device		ste		# Sundance ST201 (D-Link DFE-550TX)
#device		tl		# Texas Instruments ThunderLAN
#device		vr		# VIA Rhine, Rhine II
#device		wb		# Winbond W89C840F
#device		xl		# 3Com 3c90x (``Boomerang'', ``Cyclone'')

# ISA Ethernet NICs.
#device		ed0	at isa? port 0x280 irq 10 iomem 0xd8000
#device		ex
#device		ep
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attatement needed
# and resources will always be dynamically assigned by the pccard code.
#device		wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those paremeters here.
#device		an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
#device		ie0	at isa? port 0x300 irq 10 iomem 0xd0000
#device		fe0	at isa? port 0x300
#device		le0	at isa? port 0x300 irq 5 iomem 0xd0000
#device		lnc0	at isa? port 0x280 irq 10 drq 0
#device		cs0	at isa? port 0x300
#device		sn0	at isa? port 0x300 irq 10
# requires PCCARD (PCMCIA) support to be activated
#device		xe0	at isa?

# 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		# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)
#pseudo-device	md		# Memory "disks"
#pseudo-device	gif	4	# IPv6 and IPv4 tunneling
#pseudo-device	faith	1	# IPv6-to-IPv4 relaying (translation)

pseudo-device	vn		#Vnode driver (turns a file into a device)
#pseudo-device	vinum	#Volume Manager

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device	bpf		#Berkeley packet filter

# USB support
#device		uhci		# UHCI PCI->USB interface
#device		ohci		# OHCI PCI->USB interface
#device		usb		# USB Bus (required)
#device		ugen		# Generic
#device		uhid		# "Human Interface Devices"
#device		ukbd		# Keyboard
#device		ulpt		# Printer
#device		umass		# Disks/Mass storage - Requires scbus and da
#device		ums		# Mouse
# USB Ethernet, requires mii
#device		aue		# ADMtek USB ethernet
#device		cue		# CATC USB ethernet
#device		kue		# Kawasaki LSI USB ethernet

--==_Exmh_-15024258400
Content-Type: text/plain ; name="PINHEAD-3.4"; charset=us-ascii
Content-Description: PINHEAD-3.4
Content-Disposition: attachment; filename="PINHEAD-3.4"

#
# GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks
#
# For more information read the handbook part System Administration -> 
# Configuring the FreeBSD Kernel -> The Configuration File. 
# The handbook is available in /usr/share/doc/handbook or online as
# latest version from the FreeBSD World Wide Web server 
# <URL:http://www.FreeBSD.ORG/>;
#
# An exhaustive list of options and more detailed explanations of the 
# device lines is present in the ./LINT configuration file. If you are 
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
#	$Id: GENERIC,v 1.112 1998/07/20 20:00:29 msmith Exp $

machine		"i386"
#cpu		"I386_CPU"
#cpu		"I486_CPU"
cpu		"I586_CPU"	# for npx0
cpu		"I686_CPU"
ident		PINHEAD
maxusers	32

#options	MATH_EMULATE		#Support for x87 emulation
options		INET			#InterNETworking
options		NETATALK		#Appletalk communications protocols
#options	NETATALKDEBUG
options		FFS			#Berkeley Fast Filesystem
options		NFS			#Network Filesystem
options		MFS			#Memory File System
#options		MSDOSFS			#MSDOS Filesystem
options		"CD9660"		#ISO 9660 Filesystem
#options		"CD9660_ROOT"		#CD-ROM usable as root device
options		FFS_ROOT		#FFS usable as root device [keep this!]
#options		NFS_ROOT		#NFS usable as root device
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		SCSI_DELAY=3000
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		USER_LDT		#allow user-level control of i386 ldt - wine
options		"MD5"
options		"VM86"
#options		VESA
options		COMPAT_LINUX

options		IDE_DELAY=3000
options		SMP			# Symmetric MultiProcessor Kernel
options		APIC_IO			# Symmetric (APIC) I/O
options		SOFTUPDATES		#Copyrighted FFS changes

# These provide support for System V shared memory/semaphores/message-queues
#
options		SYSVSHM
options		SYSVSEM
options		SYSVMSG

# POSIX P1003.1B
#
# Real time extensions added int the 1993 Posix
# P1003_1B: Infrastructure
# _KPOSIX_PRIORITY_SCHEDULING: Build in _POSIX_PRIORITY_SCHEDULING
# _KPOSIX_VERSION:             Version kernel is built for
#
options		"P1003_1B"
options		"_KPOSIX_PRIORITY_SCHEDULING"
options		"_KPOSIX_VERSION=199309L"

# KTRACE enables the system-call tracing facility ktrace(2).
# This adds 4 KB bloat to your kernel, and slightly increases
# the costs of each syscall.
options		KTRACE		#kernel tracing

# Turn on kernel debugging
#
options		DDB

# Be paranoid to help shake out bugs early
#
options		INVARIANTS
options		INVARIANT_SUPPORT

config		kernel	root on da0

controller	isa0
#controller	eisa0
controller	pci0

controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2
disk		fd0	at fdc0 drive 0
#disk		fd1	at fdc0 drive 1
# Unless you know very well what you're doing, leave ft0 at drive 2, or
# remove the line entirely if you don't need it.  Trying to configure
# it on another unit might cause surprises, see PR kern/7176.
#tape		ft0	at fdc0 drive 2

#options		"CMD640"	# work around CMD640 chip deficiency
controller	wdc0	at isa? port "IO_WD1" bio irq 14 flags 0xB0FFB0FF
disk		wd0	at wdc0 drive 0
disk		wd1	at wdc0 drive 1

controller	wdc1	at isa? port "IO_WD2" bio irq 15 flags 0xB0FFB0FF
disk		wd2	at wdc1 drive 0
disk		wd3	at wdc1 drive 1

options		ATAPI		#Enable ATAPI support for IDE bus
options		ATAPI_STATIC	#Don't do it as an LKM
device		acd0		# ATAPI CD-ROM, CD-R/RW
#device		wfd0		# ATAPI Floppy (e.g. LS-120)

#
# ATA and ATAPI devices
# This is work in progress, use at your own risk.
# It currently reuses the majors of wd.c and freinds.
# It cannot co-exist with the old system in one kernel.
# You only need one "controller ata0" for it to find all
# PCI devices on modern machines.
#options	"ATA_DEBUG"
#options	"ATAPI_DEBUG"
#options	"ACD_DEBUG"
#controller	ata0
#device		atadisk0	# ATA disk drives
#device		atapicd0	# ATAPI CDROM drives
#device		atapifd0	# ATAPI floppy drives
#device		atapist0	# ATAPI tape drives
#
# If you need ISA only devices, this is the lines to add:
#controller	ata1	at isa? port "IO_WD1" bio irq 14
#controller	ata2	at isa? port "IO_WD2" bio irq 15
# 
# All the controller lines can coexist, the driver will
# find out which ones are there.

# Enable PnP support in the kernel.  This allows you to automaticly
# attach to PnP cards for drivers that support it and allows you to
# configure cards from USERCONFIG.  See pnp(4) for more info.
controller	pnp0

# Luigi's snd code (use INSTEAD of snd0 and all VOXWARE drivers!).
# You may also wish to enable the pnp controller with this, for pnp
# sound cards.
#
#device pcm0 at isa? port ? tty irq 10 drq 1 flags 0x0
#device pcm0 at isa? port ? tty irq ? drq ? flags 0x0
device pcm0

#controller      snd0
#device sb0      at isa? port 0x220 irq 10 drq 1
#device sbxvi0   at isa? drq 5
#device sbmidi0  at isa? port 0x330
#device opl0     at isa? port 0x388
#device awe0     at isa? port 0x620


# Joystick(s)
#
device		joy0	at isa? port "IO_GAME"
device		joy1	at isa? disable port "IO_GAME"


# A single entry for any of these controllers (ncr, ahb, ahc, amd) is
# sufficient for any number of installed devices.
controller	ncr0
#controller	amd0
#controller	ahb0
controller	ahc0
#controller	isp0

# The aic7xxx driver will attempt to use memory mapped I/O for all PCI
# controllers that have it configured only if this option is set. Unfortunately,
# this doesn't work on some motherboards, which prevents it from being the
# default.
options AHC_ALLOW_MEMIO

# This controller offers a number of configuration options, too many to
# document here  - see the LINT file in this directory and look up the
# dpt0 entry there for much fuller documentation on this.  The options
# line following dpt0 here is also currently a *required* option for it.
#controller      dpt0
#options DPT_MEASURE_PERFORMANCE

#controller	bt0	at isa? port "IO_BT0" bio irq ?
#controller	uha0	at isa? port "IO_UHA0" bio irq ? drq 5
#controller	aha0	at isa? port "IO_AHA0" bio irq ? drq 5
#controller	aic0	at isa? port 0x340 bio irq 11
#controller	nca0	at isa? port 0x1f88 bio irq 10
#controller	nca1	at isa? port 0x350 bio irq 5
#controller	sea0	at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000

controller	scbus0	#base SCSI code
#device		ch0	#SCSI media changers
device		da0	#SCSI direct access devices (aka disks)
#device		sa0	#SCSI tapes
device		cd0	#SCSI CD-ROMs
#device		od0	#SCSI optical disk
device		pass0	#CAM passthrough driver

#device worm0 at scbus?	# SCSI worm
#device pt0 at scbus?	# SCSI processor type
#device sctarg0 at scbus? # SCSI target

#device		wt0	at isa? port 0x300 bio irq 5 drq 1
#device		mcd0	at isa? port 0x300 bio irq 10

#controller	matcd0	at isa? port 0x230 bio

#device		scd0	at isa? port 0x230 bio


# syscons is the default console driver, resembling an SCO console
controller 	atkbdc0	at isa? port IO_KBD tty
device		atkbd0	at isa? tty irq 1
device		psm0	at isa? tty irq 12 flags 0x04
device		vga0	at isa? port ? conflicts

# Splash screen at start up!  Screen savers require this too.
#pseudo-device   splash
 
device		sc0	at isa? tty


# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa? port "IO_KBD" tty irq 1
#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

device		npx0	at isa? port "IO_NPX" irq 13

#
# Laptop 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?

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? port "IO_COM3" tty irq 5
device		sio3	at isa? port "IO_COM4" tty irq 9

# Parallel port
device		ppc0	at isa? port ? tty irq 7
controller	ppbus0
device		lpt0	at ppbus?
#device		plip0	at ppbus?
device		ppi0	at ppbus?
#controller	vpo0	at ppbus?

# 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 de0
device fxp0
#device tl0
#device tx0
#device vx0

#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 ze0 at isa? port 0x300 net irq 10 iomem 0xd8000
#device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000
#device cs0 at isa? port 0x300 net irq ?

pseudo-device	loop
pseudo-device	ether
#pseudo-device	sl	1
#pseudo-device	ppp	1
pseudo-device	tun	1
pseudo-device	pty	64
pseudo-device	bpfilter	16	#Berkeley packet filter
pseudo-device	vn		#Vnode driver (turns a file into a device)
#pseudo-device	ccd	4	#Concatenated disk driver
#pseudo-device	vinum	#Volume Manager

--==_Exmh_-15024258400--




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?70531.953494244>