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

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

Reply via email to