KVM: VMX: Handle forced exit due to preemption timer in fastpath
[linux-block.git] / Documentation / scsi / scsi.rst
CommitLineData
b7223d9b
MCC
1.. SPDX-License-Identifier: GPL-2.0
2
3============================
1da177e4
LT
4SCSI subsystem documentation
5============================
b7223d9b 6
1da177e4
LT
7The Linux Documentation Project (LDP) maintains a document describing
8the SCSI subsystem in the Linux kernel (lk) 2.4 series. See:
c4e672ac 9https://www.tldp.org/HOWTO/SCSI-2.4-HOWTO . The LDP has single
1da177e4 10and multiple page HTML renderings as well as postscript and pdf.
1da177e4
LT
11
12Notes on using modules in the SCSI subsystem
13============================================
c4e672ac 14The SCSI support in the Linux kernel can be modularized in a number of
1da177e4
LT
15different ways depending upon the needs of the end user. To understand
16your options, we should first define a few terms.
17
c4e672ac
RD
18The scsi-core (also known as the "mid level") contains the core of SCSI
19support. Without it you can do nothing with any of the other SCSI drivers.
20The SCSI core support can be a module (scsi_mod.o), or it can be built into
21the kernel. If the core is a module, it must be the first SCSI module
b7223d9b 22loaded, and if you unload the modules, it will have to be the last one
c4e672ac 23unloaded. In practice the modprobe and rmmod commands
1da177e4
LT
24will enforce the correct ordering of loading and unloading modules in
25the SCSI subsystem.
26
b7223d9b 27The individual upper and lower level drivers can be loaded in any order
c4e672ac
RD
28once the SCSI core is present in the kernel (either compiled in or loaded
29as a module). The disk driver (sd_mod.o), CD-ROM driver (sr_mod.o),
30tape driver [1]_ (st.o) and SCSI generics driver (sg.o) represent the upper
b7223d9b
MCC
31level drivers to support the various assorted devices which can be
32controlled. You can for example load the tape driver to use the tape drive,
1da177e4
LT
33and then unload it once you have no further need for the driver (and release
34the associated memory).
35
36The lower level drivers are the ones that support the individual cards that
37are supported for the hardware platform that you are running under. Those
38individual cards are often called Host Bus Adapters (HBAs). For example the
b7223d9b
MCC
39aic7xxx.o driver is used to control all recent SCSI controller cards from
40Adaptec. Almost all lower level drivers can be built either as modules or
1da177e4
LT
41built into the kernel.
42
b7223d9b
MCC
43.. [1] There is a variant of the st driver for controlling OnStream tape
44 devices. Its module name is osst.o .