Back to home page

LXR

 
 

    


0001 #
0002 # Block layer core configuration
0003 #
0004 menuconfig BLOCK
0005        bool "Enable the block layer" if EXPERT
0006        default y
0007        select SBITMAP
0008        select SRCU
0009        help
0010          Provide block layer support for the kernel.
0011 
0012          Disable this option to remove the block layer support from the
0013          kernel. This may be useful for embedded devices.
0014 
0015          If this option is disabled:
0016 
0017            - block device files will become unusable
0018            - some filesystems (such as ext3) will become unavailable.
0019 
0020          Also, SCSI character devices and USB storage will be disabled since
0021          they make use of various block layer definitions and facilities.
0022 
0023          Say Y here unless you know you really don't want to mount disks and
0024          suchlike.
0025 
0026 if BLOCK
0027 
0028 config LBDAF
0029         bool "Support for large (2TB+) block devices and files"
0030         depends on !64BIT
0031         default y
0032         help
0033           Enable block devices or files of size 2TB and larger.
0034 
0035           This option is required to support the full capacity of large
0036           (2TB+) block devices, including RAID, disk, Network Block Device,
0037           Logical Volume Manager (LVM) and loopback.
0038         
0039           This option also enables support for single files larger than
0040           2TB.
0041 
0042           The ext4 filesystem requires that this feature be enabled in
0043           order to support filesystems that have the huge_file feature
0044           enabled.  Otherwise, it will refuse to mount in the read-write
0045           mode any filesystems that use the huge_file feature, which is
0046           enabled by default by mke2fs.ext4.
0047 
0048           The GFS2 filesystem also requires this feature.
0049 
0050           If unsure, say Y.
0051 
0052 config BLK_DEV_BSG
0053         bool "Block layer SG support v4"
0054         default y
0055         help
0056           Saying Y here will enable generic SG (SCSI generic) v4 support
0057           for any block device.
0058 
0059           Unlike SG v3 (aka block/scsi_ioctl.c drivers/scsi/sg.c), SG v4
0060           can handle complicated SCSI commands: tagged variable length cdbs
0061           with bidirectional data transfers and generic request/response
0062           protocols (e.g. Task Management Functions and SMP in Serial
0063           Attached SCSI).
0064 
0065           This option is required by recent UDEV versions to properly
0066           access device serial numbers, etc.
0067 
0068           If unsure, say Y.
0069 
0070 config BLK_DEV_BSGLIB
0071         bool "Block layer SG support v4 helper lib"
0072         default n
0073         select BLK_DEV_BSG
0074         help
0075           Subsystems will normally enable this if needed. Users will not
0076           normally need to manually enable this.
0077 
0078           If unsure, say N.
0079 
0080 config BLK_DEV_INTEGRITY
0081         bool "Block layer data integrity support"
0082         select CRC_T10DIF if BLK_DEV_INTEGRITY
0083         ---help---
0084         Some storage devices allow extra information to be
0085         stored/retrieved to help protect the data.  The block layer
0086         data integrity option provides hooks which can be used by
0087         filesystems to ensure better data integrity.
0088 
0089         Say yes here if you have a storage device that provides the
0090         T10/SCSI Data Integrity Field or the T13/ATA External Path
0091         Protection.  If in doubt, say N.
0092 
0093 config BLK_DEV_ZONED
0094         bool "Zoned block device support"
0095         ---help---
0096         Block layer zoned block device support. This option enables
0097         support for ZAC/ZBC host-managed and host-aware zoned block devices.
0098 
0099         Say yes here if you have a ZAC or ZBC storage device.
0100 
0101 config BLK_DEV_THROTTLING
0102         bool "Block layer bio throttling support"
0103         depends on BLK_CGROUP=y
0104         default n
0105         ---help---
0106         Block layer bio throttling support. It can be used to limit
0107         the IO rate to a device. IO rate policies are per cgroup and
0108         one needs to mount and use blkio cgroup controller for creating
0109         cgroups and specifying per device IO rate policies.
0110 
0111         See Documentation/cgroups/blkio-controller.txt for more information.
0112 
0113 config BLK_CMDLINE_PARSER
0114         bool "Block device command line partition parser"
0115         default n
0116         ---help---
0117         Enabling this option allows you to specify the partition layout from
0118         the kernel boot args.  This is typically of use for embedded devices
0119         which don't otherwise have any standardized method for listing the
0120         partitions on a block device.
0121 
0122         See Documentation/block/cmdline-partition.txt for more information.
0123 
0124 config BLK_WBT
0125         bool "Enable support for block device writeback throttling"
0126         default n
0127         ---help---
0128         Enabling this option enables the block layer to throttle buffered
0129         background writeback from the VM, making it more smooth and having
0130         less impact on foreground operations. The throttling is done
0131         dynamically on an algorithm loosely based on CoDel, factoring in
0132         the realtime performance of the disk.
0133 
0134 config BLK_WBT_SQ
0135         bool "Single queue writeback throttling"
0136         default n
0137         depends on BLK_WBT
0138         ---help---
0139         Enable writeback throttling by default on legacy single queue devices
0140 
0141 config BLK_WBT_MQ
0142         bool "Multiqueue writeback throttling"
0143         default y
0144         depends on BLK_WBT
0145         ---help---
0146         Enable writeback throttling by default on multiqueue devices.
0147         Multiqueue currently doesn't have support for IO scheduling,
0148         enabling this option is recommended.
0149 
0150 menu "Partition Types"
0151 
0152 source "block/partitions/Kconfig"
0153 
0154 endmenu
0155 
0156 endif # BLOCK
0157 
0158 config BLOCK_COMPAT
0159         bool
0160         depends on BLOCK && COMPAT
0161         default y
0162 
0163 config BLK_MQ_PCI
0164         bool
0165         depends on BLOCK && PCI
0166         default y
0167 
0168 source block/Kconfig.iosched