162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Block device driver configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_cimenuconfig BLK_DEV 762306a36Sopenharmony_ci bool "Block devices" 862306a36Sopenharmony_ci depends on BLOCK 962306a36Sopenharmony_ci default y 1062306a36Sopenharmony_ci help 1162306a36Sopenharmony_ci Say Y here to get to see options for various different block device 1262306a36Sopenharmony_ci drivers. This option alone does not add any kernel code. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci If you say N, all options in this submenu will be skipped and disabled; 1562306a36Sopenharmony_ci only do this if you know what you are doing. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciif BLK_DEV 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cisource "drivers/block/null_blk/Kconfig" 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciconfig BLK_DEV_FD 2262306a36Sopenharmony_ci tristate "Normal floppy disk support" 2362306a36Sopenharmony_ci depends on ARCH_MAY_HAVE_PC_FDC 2462306a36Sopenharmony_ci help 2562306a36Sopenharmony_ci If you want to use the floppy disk drive(s) of your PC under Linux, 2662306a36Sopenharmony_ci say Y. Information about this driver, especially important for IBM 2762306a36Sopenharmony_ci Thinkpad users, is contained in 2862306a36Sopenharmony_ci <file:Documentation/admin-guide/blockdev/floppy.rst>. 2962306a36Sopenharmony_ci That file also contains the location of the Floppy driver FAQ as 3062306a36Sopenharmony_ci well as location of the fdutils package used to configure additional 3162306a36Sopenharmony_ci parameters of the driver at run time. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 3462306a36Sopenharmony_ci module will be called floppy. 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciconfig BLK_DEV_FD_RAWCMD 3762306a36Sopenharmony_ci bool "Support for raw floppy disk commands (DEPRECATED)" 3862306a36Sopenharmony_ci depends on BLK_DEV_FD 3962306a36Sopenharmony_ci help 4062306a36Sopenharmony_ci If you want to use actual physical floppies and expect to do 4162306a36Sopenharmony_ci special low-level hardware accesses to them (access and use 4262306a36Sopenharmony_ci non-standard formats, for example), then enable this. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci Note that the code enabled by this option is rarely used and 4562306a36Sopenharmony_ci might be unstable or insecure, and distros should not enable it. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci Note: FDRAWCMD is deprecated and will be removed from the kernel 4862306a36Sopenharmony_ci in the near future. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci If unsure, say N. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciconfig AMIGA_FLOPPY 5362306a36Sopenharmony_ci tristate "Amiga floppy support" 5462306a36Sopenharmony_ci depends on AMIGA 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ciconfig ATARI_FLOPPY 5762306a36Sopenharmony_ci tristate "Atari floppy support" 5862306a36Sopenharmony_ci depends on ATARI 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciconfig MAC_FLOPPY 6162306a36Sopenharmony_ci tristate "Support for PowerMac floppy" 6262306a36Sopenharmony_ci depends on PPC_PMAC && !PPC_PMAC64 6362306a36Sopenharmony_ci help 6462306a36Sopenharmony_ci If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple) 6562306a36Sopenharmony_ci floppy controller, say Y here. Most commonly found in PowerMacs. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ciconfig BLK_DEV_SWIM 6862306a36Sopenharmony_ci tristate "Support for SWIM Macintosh floppy" 6962306a36Sopenharmony_ci depends on M68K && MAC && !HIGHMEM 7062306a36Sopenharmony_ci help 7162306a36Sopenharmony_ci You should select this option if you want floppy support 7262306a36Sopenharmony_ci and you don't have a II, IIfx, Q900, Q950 or AV series. 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ciconfig AMIGA_Z2RAM 7562306a36Sopenharmony_ci tristate "Amiga Zorro II ramdisk support" 7662306a36Sopenharmony_ci depends on ZORRO 7762306a36Sopenharmony_ci help 7862306a36Sopenharmony_ci This enables support for using Chip RAM and Zorro II RAM as a 7962306a36Sopenharmony_ci ramdisk or as a swap partition. Say Y if you want to include this 8062306a36Sopenharmony_ci driver in the kernel. 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 8362306a36Sopenharmony_ci module will be called z2ram. 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ciconfig N64CART 8662306a36Sopenharmony_ci bool "N64 cart support" 8762306a36Sopenharmony_ci depends on MACH_NINTENDO64 8862306a36Sopenharmony_ci help 8962306a36Sopenharmony_ci Support for the N64 cart. 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciconfig CDROM 9262306a36Sopenharmony_ci tristate 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ciconfig GDROM 9562306a36Sopenharmony_ci tristate "SEGA Dreamcast GD-ROM drive" 9662306a36Sopenharmony_ci depends on SH_DREAMCAST 9762306a36Sopenharmony_ci select CDROM 9862306a36Sopenharmony_ci help 9962306a36Sopenharmony_ci A standard SEGA Dreamcast comes with a modified CD ROM drive called a 10062306a36Sopenharmony_ci "GD-ROM" by SEGA to signify it is capable of reading special disks 10162306a36Sopenharmony_ci with up to 1 GB of data. This drive will also read standard CD ROM 10262306a36Sopenharmony_ci disks. Select this option to access any disks in your GD ROM drive. 10362306a36Sopenharmony_ci Most users will want to say "Y" here. 10462306a36Sopenharmony_ci You can also build this as a module which will be called gdrom. 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_cisource "drivers/block/mtip32xx/Kconfig" 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_cisource "drivers/block/zram/Kconfig" 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ciconfig BLK_DEV_UBD 11162306a36Sopenharmony_ci bool "Virtual block device" 11262306a36Sopenharmony_ci depends on UML 11362306a36Sopenharmony_ci help 11462306a36Sopenharmony_ci The User-Mode Linux port includes a driver called UBD which will let 11562306a36Sopenharmony_ci you access arbitrary files on the host computer as block devices. 11662306a36Sopenharmony_ci Unless you know that you do not need such virtual block devices say 11762306a36Sopenharmony_ci Y here. 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ciconfig BLK_DEV_UBD_SYNC 12062306a36Sopenharmony_ci bool "Always do synchronous disk IO for UBD" 12162306a36Sopenharmony_ci depends on BLK_DEV_UBD 12262306a36Sopenharmony_ci help 12362306a36Sopenharmony_ci Writes to the virtual block device are not immediately written to the 12462306a36Sopenharmony_ci host's disk; this may cause problems if, for example, the User-Mode 12562306a36Sopenharmony_ci Linux 'Virtual Machine' uses a journalling filesystem and the host 12662306a36Sopenharmony_ci computer crashes. 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci Synchronous operation (i.e. always writing data to the host's disk 12962306a36Sopenharmony_ci immediately) is configurable on a per-UBD basis by using a special 13062306a36Sopenharmony_ci kernel command line option. Alternatively, you can say Y here to 13162306a36Sopenharmony_ci turn on synchronous operation by default for all block devices. 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci If you're running a journalling file system (like reiserfs, for 13462306a36Sopenharmony_ci example) in your virtual machine, you will want to say Y here. If 13562306a36Sopenharmony_ci you care for the safety of the data in your virtual machine, Y is a 13662306a36Sopenharmony_ci wise choice too. In all other cases (for example, if you're just 13762306a36Sopenharmony_ci playing around with User-Mode Linux) you can choose N. 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ciconfig BLK_DEV_COW_COMMON 14062306a36Sopenharmony_ci bool 14162306a36Sopenharmony_ci default BLK_DEV_UBD 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ciconfig BLK_DEV_LOOP 14462306a36Sopenharmony_ci tristate "Loopback device support" 14562306a36Sopenharmony_ci help 14662306a36Sopenharmony_ci Saying Y here will allow you to use a regular file as a block 14762306a36Sopenharmony_ci device; you can then create a file system on that block device and 14862306a36Sopenharmony_ci mount it just as you would mount other block devices such as hard 14962306a36Sopenharmony_ci drive partitions, CD-ROM drives or floppy drives. The loop devices 15062306a36Sopenharmony_ci are block special device files with major number 7 and typically 15162306a36Sopenharmony_ci called /dev/loop0, /dev/loop1 etc. 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci This is useful if you want to check an ISO 9660 file system before 15462306a36Sopenharmony_ci burning the CD, or if you want to use floppy images without first 15562306a36Sopenharmony_ci writing them to floppy. Furthermore, some Linux distributions avoid 15662306a36Sopenharmony_ci the need for a dedicated Linux partition by keeping their complete 15762306a36Sopenharmony_ci root file system inside a DOS FAT file using this loop device 15862306a36Sopenharmony_ci driver. 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci To use the loop device, you need the losetup utility, found in the 16162306a36Sopenharmony_ci util-linux package, see 16262306a36Sopenharmony_ci <https://www.kernel.org/pub/linux/utils/util-linux/>. 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci The loop device driver can also be used to "hide" a file system in 16562306a36Sopenharmony_ci a disk partition, floppy, or regular file, either using encryption 16662306a36Sopenharmony_ci (scrambling the data) or steganography (hiding the data in the low 16762306a36Sopenharmony_ci bits of, say, a sound file). This is also safe if the file resides 16862306a36Sopenharmony_ci on a remote file server. 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci Note that this loop device has nothing to do with the loopback 17162306a36Sopenharmony_ci device used for network connections from the machine to itself. 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 17462306a36Sopenharmony_ci module will be called loop. 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci Most users will answer N here. 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ciconfig BLK_DEV_LOOP_MIN_COUNT 17962306a36Sopenharmony_ci int "Number of loop devices to pre-create at init time" 18062306a36Sopenharmony_ci depends on BLK_DEV_LOOP 18162306a36Sopenharmony_ci default 8 18262306a36Sopenharmony_ci help 18362306a36Sopenharmony_ci Static number of loop devices to be unconditionally pre-created 18462306a36Sopenharmony_ci at init time. 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci This default value can be overwritten on the kernel command 18762306a36Sopenharmony_ci line or with module-parameter loop.max_loop. 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci The historic default is 8. If a late 2011 version of losetup(8) 19062306a36Sopenharmony_ci is used, it can be set to 0, since needed loop devices can be 19162306a36Sopenharmony_ci dynamically allocated with the /dev/loop-control interface. 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_cisource "drivers/block/drbd/Kconfig" 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ciconfig BLK_DEV_NBD 19662306a36Sopenharmony_ci tristate "Network block device support" 19762306a36Sopenharmony_ci depends on NET 19862306a36Sopenharmony_ci help 19962306a36Sopenharmony_ci Saying Y here will allow your computer to be a client for network 20062306a36Sopenharmony_ci block devices, i.e. it will be able to use block devices exported by 20162306a36Sopenharmony_ci servers (mount file systems on them etc.). Communication between 20262306a36Sopenharmony_ci client and server works over TCP/IP networking, but to the client 20362306a36Sopenharmony_ci program this is hidden: it looks like a regular local file access to 20462306a36Sopenharmony_ci a block device special file such as /dev/nd0. 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci Network block devices also allows you to run a block-device in 20762306a36Sopenharmony_ci userland (making server and client physically the same computer, 20862306a36Sopenharmony_ci communicating using the loopback network device). 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci Read <file:Documentation/admin-guide/blockdev/nbd.rst> for more information, 21162306a36Sopenharmony_ci especially about where to find the server code, which runs in user 21262306a36Sopenharmony_ci space and does not need special kernel support. 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci Note that this has nothing to do with the network file systems NFS 21562306a36Sopenharmony_ci or Coda; you can say N here even if you intend to use NFS or Coda. 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 21862306a36Sopenharmony_ci module will be called nbd. 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci If unsure, say N. 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ciconfig BLK_DEV_RAM 22362306a36Sopenharmony_ci tristate "RAM block device support" 22462306a36Sopenharmony_ci help 22562306a36Sopenharmony_ci Saying Y here will allow you to use a portion of your RAM memory as 22662306a36Sopenharmony_ci a block device, so that you can make file systems on it, read and 22762306a36Sopenharmony_ci write to it and do all the other things that you can do with normal 22862306a36Sopenharmony_ci block devices (such as hard drives). It is usually used to load and 22962306a36Sopenharmony_ci store a copy of a minimal root file system off of a floppy into RAM 23062306a36Sopenharmony_ci during the initial install of Linux. 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci Note that the kernel command line option "ramdisk=XX" is now obsolete. 23362306a36Sopenharmony_ci For details, read <file:Documentation/admin-guide/blockdev/ramdisk.rst>. 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 23662306a36Sopenharmony_ci module will be called brd. An alias "rd" has been defined 23762306a36Sopenharmony_ci for historical reasons. 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ci Most normal users won't need the RAM disk functionality, and can 24062306a36Sopenharmony_ci thus say N here. 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ciconfig BLK_DEV_RAM_COUNT 24362306a36Sopenharmony_ci int "Default number of RAM disks" 24462306a36Sopenharmony_ci default "16" 24562306a36Sopenharmony_ci depends on BLK_DEV_RAM 24662306a36Sopenharmony_ci help 24762306a36Sopenharmony_ci The default value is 16 RAM disks. Change this if you know what you 24862306a36Sopenharmony_ci are doing. If you boot from a filesystem that needs to be extracted 24962306a36Sopenharmony_ci in memory, you will need at least one RAM disk (e.g. root on cramfs). 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ciconfig BLK_DEV_RAM_SIZE 25262306a36Sopenharmony_ci int "Default RAM disk size (kbytes)" 25362306a36Sopenharmony_ci depends on BLK_DEV_RAM 25462306a36Sopenharmony_ci default "4096" 25562306a36Sopenharmony_ci help 25662306a36Sopenharmony_ci The default value is 4096 kilobytes. Only change this if you know 25762306a36Sopenharmony_ci what you are doing. 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ciconfig CDROM_PKTCDVD 26062306a36Sopenharmony_ci tristate "Packet writing on CD/DVD media (DEPRECATED)" 26162306a36Sopenharmony_ci depends on !UML 26262306a36Sopenharmony_ci depends on SCSI 26362306a36Sopenharmony_ci select CDROM 26462306a36Sopenharmony_ci help 26562306a36Sopenharmony_ci Note: This driver is deprecated and will be removed from the 26662306a36Sopenharmony_ci kernel in the near future! 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci If you have a CDROM/DVD drive that supports packet writing, say 26962306a36Sopenharmony_ci Y to include support. It should work with any MMC/Mt Fuji 27062306a36Sopenharmony_ci compliant ATAPI or SCSI drive, which is just about any newer 27162306a36Sopenharmony_ci DVD/CD writer. 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci Currently only writing to CD-RW, DVD-RW, DVD+RW and DVDRAM discs 27462306a36Sopenharmony_ci is possible. 27562306a36Sopenharmony_ci DVD-RW disks must be in restricted overwrite mode. 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ci See the file <file:Documentation/cdrom/packet-writing.rst> 27862306a36Sopenharmony_ci for further information on the use of this driver. 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 28162306a36Sopenharmony_ci module will be called pktcdvd. 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ciconfig CDROM_PKTCDVD_BUFFERS 28462306a36Sopenharmony_ci int "Free buffers for data gathering" 28562306a36Sopenharmony_ci depends on CDROM_PKTCDVD 28662306a36Sopenharmony_ci default "8" 28762306a36Sopenharmony_ci help 28862306a36Sopenharmony_ci This controls the maximum number of active concurrent packets. More 28962306a36Sopenharmony_ci concurrent packets can increase write performance, but also require 29062306a36Sopenharmony_ci more memory. Each concurrent packet will require approximately 64Kb 29162306a36Sopenharmony_ci of non-swappable kernel memory, memory which will be allocated when 29262306a36Sopenharmony_ci a disc is opened for writing. 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ciconfig CDROM_PKTCDVD_WCACHE 29562306a36Sopenharmony_ci bool "Enable write caching" 29662306a36Sopenharmony_ci depends on CDROM_PKTCDVD 29762306a36Sopenharmony_ci help 29862306a36Sopenharmony_ci If enabled, write caching will be set for the CD-R/W device. For now 29962306a36Sopenharmony_ci this option is dangerous unless the CD-RW media is known good, as we 30062306a36Sopenharmony_ci don't do deferred write error handling yet. 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ciconfig ATA_OVER_ETH 30362306a36Sopenharmony_ci tristate "ATA over Ethernet support" 30462306a36Sopenharmony_ci depends on NET 30562306a36Sopenharmony_ci help 30662306a36Sopenharmony_ci This driver provides Support for ATA over Ethernet block 30762306a36Sopenharmony_ci devices like the Coraid EtherDrive (R) Storage Blade. 30862306a36Sopenharmony_ci 30962306a36Sopenharmony_ciconfig SUNVDC 31062306a36Sopenharmony_ci tristate "Sun Virtual Disk Client support" 31162306a36Sopenharmony_ci depends on SUN_LDOMS 31262306a36Sopenharmony_ci help 31362306a36Sopenharmony_ci Support for virtual disk devices as a client under Sun 31462306a36Sopenharmony_ci Logical Domains. 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_cisource "drivers/s390/block/Kconfig" 31762306a36Sopenharmony_ci 31862306a36Sopenharmony_ciconfig XEN_BLKDEV_FRONTEND 31962306a36Sopenharmony_ci tristate "Xen virtual block device support" 32062306a36Sopenharmony_ci depends on XEN 32162306a36Sopenharmony_ci default y 32262306a36Sopenharmony_ci select XEN_XENBUS_FRONTEND 32362306a36Sopenharmony_ci help 32462306a36Sopenharmony_ci This driver implements the front-end of the Xen virtual 32562306a36Sopenharmony_ci block device driver. It communicates with a back-end driver 32662306a36Sopenharmony_ci in another domain which drives the actual block device. 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ciconfig XEN_BLKDEV_BACKEND 32962306a36Sopenharmony_ci tristate "Xen block-device backend driver" 33062306a36Sopenharmony_ci depends on XEN_BACKEND 33162306a36Sopenharmony_ci help 33262306a36Sopenharmony_ci The block-device backend driver allows the kernel to export its 33362306a36Sopenharmony_ci block devices to other guests via a high-performance shared-memory 33462306a36Sopenharmony_ci interface. 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ci The corresponding Linux frontend driver is enabled by the 33762306a36Sopenharmony_ci CONFIG_XEN_BLKDEV_FRONTEND configuration option. 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci The backend driver attaches itself to a any block device specified 34062306a36Sopenharmony_ci in the XenBus configuration. There are no limits to what the block 34162306a36Sopenharmony_ci device as long as it has a major and minor. 34262306a36Sopenharmony_ci 34362306a36Sopenharmony_ci If you are compiling a kernel to run in a Xen block backend driver 34462306a36Sopenharmony_ci domain (often this is domain 0) you should say Y here. To 34562306a36Sopenharmony_ci compile this driver as a module, chose M here: the module 34662306a36Sopenharmony_ci will be called xen-blkback. 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ciconfig VIRTIO_BLK 35062306a36Sopenharmony_ci tristate "Virtio block driver" 35162306a36Sopenharmony_ci depends on VIRTIO 35262306a36Sopenharmony_ci select SG_POOL 35362306a36Sopenharmony_ci help 35462306a36Sopenharmony_ci This is the virtual block driver for virtio. It can be used with 35562306a36Sopenharmony_ci QEMU based VMMs (like KVM or Xen). Say Y or M. 35662306a36Sopenharmony_ci 35762306a36Sopenharmony_ciconfig BLK_DEV_RBD 35862306a36Sopenharmony_ci tristate "Rados block device (RBD)" 35962306a36Sopenharmony_ci depends on INET && BLOCK 36062306a36Sopenharmony_ci select CEPH_LIB 36162306a36Sopenharmony_ci select LIBCRC32C 36262306a36Sopenharmony_ci select CRYPTO_AES 36362306a36Sopenharmony_ci select CRYPTO 36462306a36Sopenharmony_ci help 36562306a36Sopenharmony_ci Say Y here if you want include the Rados block device, which stripes 36662306a36Sopenharmony_ci a block device over objects stored in the Ceph distributed object 36762306a36Sopenharmony_ci store. 36862306a36Sopenharmony_ci 36962306a36Sopenharmony_ci More information at http://ceph.newdream.net/. 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_ci If unsure, say N. 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ciconfig BLK_DEV_UBLK 37462306a36Sopenharmony_ci tristate "Userspace block driver (Experimental)" 37562306a36Sopenharmony_ci select IO_URING 37662306a36Sopenharmony_ci help 37762306a36Sopenharmony_ci io_uring based userspace block driver. Together with ublk server, ublk 37862306a36Sopenharmony_ci has been working well, but interface with userspace or command data 37962306a36Sopenharmony_ci definition isn't finalized yet, and might change according to future 38062306a36Sopenharmony_ci requirement, so mark is as experimental now. 38162306a36Sopenharmony_ci 38262306a36Sopenharmony_ci Say Y if you want to get better performance because task_work_add() 38362306a36Sopenharmony_ci can be used in IO path for replacing io_uring cmd, which will become 38462306a36Sopenharmony_ci shared between IO tasks and ubq daemon, meantime task_work_add() can 38562306a36Sopenharmony_ci can handle batch more effectively, but task_work_add() isn't exported 38662306a36Sopenharmony_ci for module, so ublk has to be built to kernel. 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ciconfig BLKDEV_UBLK_LEGACY_OPCODES 38962306a36Sopenharmony_ci bool "Support legacy command opcode" 39062306a36Sopenharmony_ci depends on BLK_DEV_UBLK 39162306a36Sopenharmony_ci default y 39262306a36Sopenharmony_ci help 39362306a36Sopenharmony_ci ublk driver started to take plain command encoding, which turns out 39462306a36Sopenharmony_ci one bad way. The traditional ioctl command opcode encodes more 39562306a36Sopenharmony_ci info and basically defines each code uniquely, so opcode conflict 39662306a36Sopenharmony_ci is avoided, and driver can handle wrong command easily, meantime it 39762306a36Sopenharmony_ci may help security subsystem to audit io_uring command. 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_ci Say Y if your application still uses legacy command opcode. 40062306a36Sopenharmony_ci 40162306a36Sopenharmony_ci Say N if you don't want to support legacy command opcode. It is 40262306a36Sopenharmony_ci suggested to enable N if your application(ublk server) switches to 40362306a36Sopenharmony_ci ioctl command encoding. 40462306a36Sopenharmony_ci 40562306a36Sopenharmony_cisource "drivers/block/rnbd/Kconfig" 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_ciendif # BLK_DEV 408