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>