Date: Fri, 25 Feb 2000 10:03:06 -0500 (EST) From: "Michael J. Walsh" <mike@walshm.npt.nuwc.navy.mil> To: freebsd-questions@FreeBSD.ORG Subject: Why is my new kernel so big? Message-ID: <Pine.BSF.4.21.0002250927430.11726-200000@walshm.npt.nuwc.navy.mil>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] 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* 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 [-- Attachment #2 --] # # 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0002250927430.11726-200000>
