From d11db422c662c0440d224e37ed2a4ada644281ea Mon Sep 17 00:00:00 2001 From: ken Date: Mon, 4 Mar 2013 21:18:45 +0000 Subject: Re-enable CTL in GENERIC on i386 and amd64, but turn on the CTL disable tunable by default. This will allow GENERIC configurations to boot on small memory boxes, but not require end users who want to use CTL to recompile their kernel. They can simply set kern.cam.ctl.disable=0 in loader.conf. The eventual solution to the memory usage problem is to change the way CTL allocates memory to be more configurable, but this should fix things for small memory situations in the mean time. UPDATING: Explain the change in the CTL configuration, and how users can enable CTL if they would like to use it. sys/conf/options: Add a new option, CTL_DISABLE, that prevents CTL from initializing. ctl.c: If CTL_DISABLE is turned on, don't initialize. i386/conf/GENERIC, amd64/conf/GENERIC: Re-enable device ctl, and add the CTL_DISABLE option. --- sys/amd64/conf/GENERIC | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sys/amd64') diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index 3988195..577cf4b 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -138,7 +138,10 @@ device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct ATA/SCSI access) device ses # Enclosure Services (SES and SAF-TE) -#device ctl # CAM Target Layer +device ctl # CAM Target Layer +options CTL_DISABLE # Disable CTL by default to save memory. + # Re-enable with kern.cam.ctl.disable=0 in + # /boot/loader.conf # RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID -- cgit v1.1 From 840f21fc4922b144ba355c33e2fbab7970d7a18f Mon Sep 17 00:00:00 2001 From: bryanv Date: Wed, 6 Mar 2013 07:17:53 +0000 Subject: Remove the virtio dependency entry for the VirtIO device drivers. This will prevent the kernel from linking if the device driver are included without the virtio module. Remove pci and scbus for the same reason. Also explain the relationship and necessity of the virtio and virtio_pci modules. Currently in FreeBSD, we only support VirtIO PCI, but it could be replaced with a different interface (like MMIO) and the device (network, block, etc) will still function. Requested by: luigi Approved by: grehan (mentor) MFC after: 3 days --- sys/amd64/conf/NOTES | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sys/amd64') diff --git a/sys/amd64/conf/NOTES b/sys/amd64/conf/NOTES index a4371f7..7a41464 100644 --- a/sys/amd64/conf/NOTES +++ b/sys/amd64/conf/NOTES @@ -442,6 +442,13 @@ options SAFE_RNDTEST # enable rndtest support # # VirtIO support +# +# The virtio entry provides a generic bus for use by the device drivers. +# It must be combined with an interface that communicates with the host. +# Multiple such interfaces defined by the VirtIO specification. FreeBSD +# only has support for PCI. Therefore, virtio_pci must be statically +# compiled in or loaded as a module for the device drivers to function. +# device virtio # Generic VirtIO bus (required) device virtio_pci # VirtIO PCI Interface device vtnet # VirtIO Ethernet device -- cgit v1.1