Custom Kernel build and ZFS prefetch
Trond Endrestøl
Trond.Endrestol at fagskolen.gjovik.no
Wed Feb 11 08:58:33 UTC 2015
On Tue, 10 Feb 2015 15:17-0500, R0B_ROD wrote:
> # kldstat
>From my own experience some of these modules can be statically
compiled in the kernel:
> Id Refs Address Size Name
> 1 40 0xffffffff80200000 e340d8 kernel
> 2 1 0xffffffff81035000 2f9740 zfs.ko
> 3 2 0xffffffff8132f000 6678 opensolaris.ko
Use options ZFS for zfs.ko and opensolaris.ko.
> 4 1 0xffffffff81411000 119559 radeonkms.ko
> 5 1 0xffffffff8152b000 48587 drm2.ko
> 6 4 0xffffffff81574000 22b6 iicbus.ko
> 7 1 0xffffffff81577000 1a56 iic.ko
> 8 1 0xffffffff81579000 1e4a iicbb.ko
Use:
device iicbus
device iicbb
device ic
device iic
> 9 1 0xffffffff8157b000 18f1 radeonkmsfw_PALM_pfp.ko
> 10 1 0xffffffff8157d000 1cee radeonkmsfw_PALM_me.ko
> 11 1 0xffffffff8157f000 136c radeonkmsfw_SUMO_rlc.ko
I may be wrong, but I doubt you can have drm2 and radeonkms statically
compiled in the kernel.
There's a good reason to avoid compiling the KMS drivers in the
kernel. In the event of a major bug, it can be beneficial to have a
running system with only the VGA driver active. Plus, you can
experiment with different versions of the .ko files.
At any rate, /usr/src/sys/conf/NOTES and
/usr/src/sys/amd64/conf/NOTES are your friends.
However, you won't find options ZFS mentioned anywhere but in
/usr/src/sys/conf/files and even there the option is a bit obscured.
> # uname -a
> FreeBSD k8-bsd 10.1-STABLE FreeBSD 10.1-STABLE #0:
> Mon Feb 9 20:42:19 EST 2015
> root at k8-bsd:/usr/obj/usr/src/sys/MDFK4.2 amd64
>
> KERNCONF:
>
> profile 2
> cpu HAMMER
> ident MDFK
>
> makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
> makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support
>
> options SCHED_ULE # ULE scheduler
> options PREEMPTION # Enable kernel thread preemption
> options INET # InterNETworking
> options INET6 # IPv6 communications protocols
> options TCP_OFFLOAD # TCP offload
> options SCTP # Stream Control Transmission Protocol
> options FFS # Berkeley Fast Filesystem
> options SOFTUPDATES # Enable FFS soft updates support
> options UFS_ACL # Support for access control lists
> options UFS_DIRHASH # Improve performance on big directories
> options UFS_GJOURNAL # Enable gjournal-based UFS journaling
> options QUOTA # Enable disk quotas for UFS
> options MD_ROOT # MD is a potential root device
> options NFSCL # New Network Filesystem Client
> options NFSD # New Network Filesystem Server
> options NFSLOCKD # Network Lock Manager
> options NFS_ROOT # NFS usable as /, requires NFSCL
> options MSDOSFS # MSDOS Filesystem
> options CD9660 # ISO 9660 Filesystem
> options PROCFS # Process filesystem (requires PSEUDOFS)
> options PSEUDOFS # Pseudo-filesystem framework
> options GEOM_PART_GPT # GUID Partition Tables.
> options GEOM_LABEL # Provides labelization
> options COMPAT_FREEBSD32 # Compatible with i386 binaries
> options COMPAT_FREEBSD4 # Compatible with FreeBSD4
> options COMPAT_FREEBSD5 # Compatible with FreeBSD5
> options COMPAT_FREEBSD6 # Compatible with FreeBSD6
> options COMPAT_FREEBSD7 # Compatible with FreeBSD7
> options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
> options KTRACE # ktrace(1) support
> options STACK # stack(9) support
> options SYSVSHM # SYSV-style shared memory
> options SYSVMSG # SYSV-style message queues
> options SYSVSEM # SYSV-style semaphores
> options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
> options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
> options KBD_INSTALL_CDEV # install a CDEV entry in /dev
> options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
> options AUDIT # Security event auditing
> options CAPABILITY_MODE # Capsicum capability mode
> options CAPABILITIES # Capsicum capabilities
> options PROCDESC # Support for process descriptors
> options MAC # TrustedBSD MAC Framework
> options KDTRACE_FRAME # Ensure frames are compiled in
> options KDTRACE_HOOKS # Kernel DTrace hooks
> options DDB_CTF # Kernel ELF linker loads CTF data
> options INCLUDE_CONFIG_FILE # Include this file in kernel
>
> # Debugging support. Always need this:
> options KDB # Enable kernel debugger support.
> options KDB_TRACE # Print a stack trace for a panic.
>
> # Make an SMP-capable kernel by default
> options SMP # Symmetric MultiProcessor Kernel
>
> # CPU frequency control, temp
> device cpufreq
> device cpuctl
>
> # Bus support.
> device agp
> device acpi
> options ACPI_DMAR
> device pci
>
> # ATA controllers
> device ahci # AHCI-compatible SATA controllers
> device ata
> options ATA_STATIC_ID # Static device numbering
>
> # ATA/SCSI peripherals
> device scbus # SCSI bus (required for ATA/SCSI)
> device da # Direct Access (disks)
> device cd # CD
> device pass # Passthrough device (direct ATA/SCSI access)
>
> # atkbdc0 controls both the keyboard and the PS/2 mouse
> device atkbdc # AT keyboard controller
> device atkbd # AT keyboard
>
> device psm # PS/2 mouse
> device kbdmux # keyboard multiplexer
>
> # Video
> device vga # VGA video card driver
> device splash # Splash screen and screen saver support
> options VESA
>
> # syscons is the default console driver, resembling an SCO console
> device sc
> options SC_PIXEL_MODE # add support for the raster text mode
>
> # vt is the new video console driver
> device vt
> device vt_vga
> device vt_efifb
>
> # Wireless NIC cards
> device bpf # Needed for wlan0 & DHCP
> device wlan # 802.11 support
> options IEEE80211_DEBUG # enable debug msgs
> options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's
> options IEEE80211_SUPPORT_MESH # enable 802.11s draft support
> device wlan_wep # 802.11 WEP support
> device wlan_ccmp # 802.11 CCMP support
> device wlan_tkip # 802.11 TKIP support
> device wlan_amrr # AMRR transmit rate control algorithm
> device ath # Atheros NICs
> device ath_pci # Atheros pci/cardbus glue
> device ath_hal # pci/cardbus chip support
> options ATH_ENABLE_11N # Enable 802.11n support for AR5416 and later
> device ath_rate_sample # SampleRate tx rate control for ath
>
> # PCI-E NIC
> device miibus
> device re # 8101 Realtek
>
> # MMC/SD !NO-SUPPORT-YET
> device mmc
> device mmcsd
> device sdhci
>
> # Pseudo devices.
> device loop # Network loopback
> device random # Entropy device
> device padlock_rng # VIA Padlock RNG
> device rdrand_rng # Intel Bull Mountain RNG
> device ether # Ethernet support
> device vlan # 802.1Q VLAN support
> device tun # Packet tunnel.
> device md # Memory "disks"
> device gif # IPv6 and IPv4 tunneling
> device faith # IPv6-to-IPv4 relaying (translation)
> device firmware # firmware assist module
>
>
> # USB support
> options USB_DEBUG # enable debug msgs
> device uhci # UHCI PCI->USB interface
> device ohci # OHCI PCI->USB interface
> device ehci # EHCI PCI->USB interface (USB 2.0)
> device xhci # XHCI PCI->USB interface (USB 3.0)
> device usb # USB Bus (required)
> device ukbd # Keyboard
> device umass # Disks/Mass storage - Requires scbus and da
>
> # Sound support
> device sound # Generic sound driver (required)
> device snd_hda # Intel High Definition Audio
>
> # VirtIO support
> device virtio # Generic VirtIO bus (required)
> device virtio_pci # VirtIO PCI device
> device vtnet # VirtIO Ethernet device
> device virtio_blk # VirtIO Block device
> device virtio_scsi # VirtIO SCSI device
> device virtio_balloon # VirtIO Memory Balloon device
>
> device hyperv
>
> EOF
>
> I was curious if I can compile the modules above into the kernel and
> if that would be a good idea. I have made 6 kernels so far just cuz
> I keep reinstalling to learn more. Im on Root-on-ZFS this time and I
> can really tell a speed difference in building and making ports.
> Also I have 4gb of RAM with 4gb swap and was wondering if enabling
> the "vfs.zfs.prefetch_disable=0" would help if any. Comments? Thanks
> for the help.
You really should have more than 4 GiB of memory for any serious use
of ZFS. If this system is simply for experimentation and learning,
then knock yourself out.
>
> # cat loader.conf
> kern.geom.label.gptid.enable="0"
> zfs_load="YES"
> hw.vga.textmode=0
> kern.vty=vt
--
+-------------------------------+------------------------------------+
| Vennlig hilsen, | Best regards, |
| Trond Endrestøl, | Trond Endrestøl, |
| IT-ansvarlig, | System administrator, |
| Fagskolen Innlandet, | Gjøvik Technical College, Norway, |
| tlf. mob. 952 62 567, | Cellular...: +47 952 62 567, |
| sentralbord 61 14 54 00. | Switchboard: +47 61 14 54 00. |
+-------------------------------+------------------------------------+
More information about the freebsd-questions
mailing list