summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/da.4 3.html
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:43 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:43 -0400
commitac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (patch)
tree9367490586c84cba28652e443e3166d66c33b0d9 /static/freebsd/man4/da.4 3.html
parent253e67c8b3a72b3a4757fdbc5845297628db0a4a (diff)
docs: Added All FreeBSD Manuals
Diffstat (limited to 'static/freebsd/man4/da.4 3.html')
-rw-r--r--static/freebsd/man4/da.4 3.html199
1 files changed, 199 insertions, 0 deletions
diff --git a/static/freebsd/man4/da.4 3.html b/static/freebsd/man4/da.4 3.html
new file mode 100644
index 00000000..dcb1ffe7
--- /dev/null
+++ b/static/freebsd/man4/da.4 3.html
@@ -0,0 +1,199 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">DA(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">DA(4)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">da</code> &#x2014; <span class="Nd">SCSI Direct
+ Access device driver</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp"><code class="Cd">device da</code></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The <code class="Nm">da</code> driver provides support for all
+ SCSI devices of the direct access class that are attached to the system
+ through a supported SCSI Host Adapter. The direct access class includes
+ disk, magneto-optical, and solid-state devices.</p>
+<p class="Pp">A SCSI Host adapter must also be separately configured into the
+ system before a SCSI direct access device can be configured.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="CACHE_EFFECTS"><a class="permalink" href="#CACHE_EFFECTS">CACHE
+ EFFECTS</a></h1>
+<p class="Pp">Many direct access devices are equipped with read and/or write
+ caches. Parameters affecting the device's cache are stored in mode page 8,
+ the caching control page. Mode pages can be examined and modified via the
+ <a class="Xr">camcontrol(8)</a> utility.</p>
+<p class="Pp">The read cache is used to store data from device-initiated read
+ ahead operations as well as frequently used data. The read cache is
+ transparent to the user and can be enabled without any adverse effect. Most
+ devices with a read cache come from the factory with it enabled. The read
+ cache can be disabled by setting the RCD (Read Cache Disable) bit in the
+ caching control mode page.</p>
+<p class="Pp">The write cache can greatly decrease the latency of write
+ operations and allows the device to reorganize writes to increase efficiency
+ and performance. This performance gain comes at a price. Should the device
+ lose power while its cache contains uncommitted write operations, these
+ writes will be lost. The effect of a loss of write transactions on a file
+ system is non-deterministic and can cause corruption. Most devices age write
+ transactions to limit vulnerability to a few transactions recently reported
+ as complete, but it is none-the-less recommended that systems with write
+ cache enabled devices reside on an Uninterruptible Power Supply (UPS). The
+ <code class="Nm">da</code> device driver ensures that the cache and media
+ are synchronized upon final close of the device or an unexpected shutdown
+ (panic) event. This ensures that it is safe to disconnect power once the
+ operating system has reported that it has halted. The write cache can be
+ enabled by setting the WCE (Write Cache Enable) bit in the caching control
+ mode page.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="TAGGED_QUEUING"><a class="permalink" href="#TAGGED_QUEUING">TAGGED
+ QUEUING</a></h1>
+<p class="Pp">The <code class="Nm">da</code> device driver will take full
+ advantage of the SCSI feature known as tagged queueing. Tagged queueing
+ allows the device to process multiple transactions concurrently, often
+ re-ordering them to reduce the number and length of seeks. To ensure that
+ transactions to distant portions of the media, which may be deferred
+ indefinitely by servicing requests nearer the current head position, are
+ completed in a timely fashion, an ordered tagged transaction is sent every
+ 15 seconds during continuous device operation.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="BAD_BLOCK_RECOVERY"><a class="permalink" href="#BAD_BLOCK_RECOVERY">BAD
+ BLOCK RECOVERY</a></h1>
+<p class="Pp">Direct Access devices have the capability of mapping out portions
+ of defective media. Media recovery parameters are located in mode page 1,
+ the Read-Write Error Recovery mode page. The most important media remapping
+ features are 'Auto Write Reallocation' and 'Auto Read Reallocation' which
+ can be enabled via the AWRE and ARRE bits, respectively, of the Read-Write
+ Error Recovery page. Many devices do not ship from the factory with these
+ feature enabled. Mode pages can be examined and modified via the
+ <a class="Xr">camcontrol(8)</a> utility.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="KERNEL_CONFIGURATION"><a class="permalink" href="#KERNEL_CONFIGURATION">KERNEL
+ CONFIGURATION</a></h1>
+<p class="Pp">It is only necessary to explicitly configure one
+ <code class="Nm">da</code> device; data structures are dynamically allocated
+ as disks are found on the SCSI bus.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL
+ VARIABLES</a></h1>
+<p class="Pp">The following variables are available as both
+ <a class="Xr">sysctl(8)</a> variables and <a class="Xr">loader(8)</a>
+ tunables:</p>
+<dl class="Bl-tag">
+ <dt id="kern.cam.da.default_timeout"><var class="Va">kern.cam.da.default_timeout</var></dt>
+ <dd>This variable determines how long the <code class="Nm">da</code> driver
+ will wait before timing out an outstanding command. The units for this
+ value are seconds, and the default is currently 60 seconds.</dd>
+ <dt id="kern.cam.da.disable_wp_protection"><var class="Va">kern.cam.da.disable_wp_protection</var></dt>
+ <dd>Disable detection of write-protected disks. Default is disabled.
+ (detection of write-protected disks is enabled).</dd>
+ <dt id="kern.cam.da.enable_biospeedup"><var class="Va">kern.cam.da.enable_biospeedup</var></dt>
+ <dd>Enable <code class="Dv">BIO_SPEEDUP</code> processing. Default is
+ enabled.</dd>
+ <dt id="kern.cam.da.enable_uma_ccbs"><var class="Va">kern.cam.da.enable_uma_ccbs</var></dt>
+ <dd>Use UMA for CCBs. Default is enabled.</dd>
+ <dt id="kern.cam.da.poll_period"><var class="Va">kern.cam.da.poll_period</var></dt>
+ <dd>Media polling period in seconds. Default is 3 seconds.</dd>
+ <dt id="kern.cam.da.retry_count"><var class="Va">kern.cam.da.retry_count</var></dt>
+ <dd>This variable determines how many times the <code class="Nm">da</code>
+ driver will retry a READ or WRITE command. This does not affect the number
+ of retries used during probe time or for the <code class="Nm">da</code>
+ driver dump routine. This value currently defaults to 4.</dd>
+ <dt id="kern.cam.da.send_ordered"><var class="Va">kern.cam.da.send_ordered</var></dt>
+ <dd>Send Ordered Tags. On shutdown, step through all the
+ <code class="Nm">da</code> peripheral drivers, and if the device is still
+ open, sync the disk to physical media. Default is enabled.</dd>
+ <dt id="kern.cam.sort_io_queue"><var class="Va">kern.cam.sort_io_queue</var></dt>
+ <dd style="width: auto;">&#x00A0;</dd>
+ <dt id="kern.cam.da"><var class="Va">kern.cam.da</var>.<var class="Ar">X</var><var class="Va">.sort_io_queue</var></dt>
+ <dd>These variables determine whether request queue should be sorted trying to
+ optimize head seeks. Set to 1 to enable sorting, 0 to disable, -1 to leave
+ it as-is. The default is sorting enabled for HDDs and disabled for
+ SSDs.</dd>
+ <dt id="kern.cam.da~2"><var class="Va">kern.cam.da</var>.<var class="Ar">X</var><var class="Va">.delete_method</var></dt>
+ <dd>This variable specifies method to handle BIO_DELETE requests:
+ <dl class="Bl-tag">
+ <dt>ATA_TRIM</dt>
+ <dd>ATA TRIM via ATA COMMAND PASS THROUGH command,</dd>
+ <dt>UNMAP</dt>
+ <dd>UNMAP command,</dd>
+ <dt>WS16</dt>
+ <dd>WRITE SAME(16) command with UNMAP flag,</dd>
+ <dt>WS10</dt>
+ <dd>WRITE SAME(10) command with UNMAP flag,</dd>
+ <dt>ZERO</dt>
+ <dd>WRITE SAME(10) command without UNMAP flag,</dd>
+ <dt>DISABLE</dt>
+ <dd>disable BIO_DELETE support.</dd>
+ </dl>
+ </dd>
+ <dt id="kern.cam.da~3"><var class="Va">kern.cam.da</var>.<var class="Ar">X</var><var class="Va">.minimum_cmd_size</var></dt>
+ <dd>This variable determines what the minimum READ/WRITE CDB size is for a
+ given <code class="Nm">da</code> unit. Valid minimum command size values
+ are 6, 10, 12 and 16 bytes. The default is 6 bytes.
+ <p class="Pp">The <code class="Nm">da</code> driver issues a CAM Path
+ Inquiry CCB at probe time to determine whether the protocol the device
+ in question speaks (e.g. ATAPI) typically does not allow 6 byte
+ commands. If it does not, the <code class="Nm">da</code> driver will
+ default to using at least 10 byte CDBs. If a 6 byte READ or WRITE fails
+ with an ILLEGAL REQUEST error, the <code class="Nm">da</code> driver
+ will then increase the default CDB size for the device to 10 bytes and
+ retry the command. CDB size is always chosen as the smallest READ/WRITE
+ CDB that will satisfy the specified minimum command size, and the LBA
+ and length of the READ or WRITE in question. (e.g., a write to an LBA
+ larger than 2^32 will require a 16 byte CDB.)</p>
+ </dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="NOTES"><a class="permalink" href="#NOTES">NOTES</a></h1>
+<p class="Pp">If a device becomes invalidated (media is removed, device becomes
+ unresponsive) the disklabel and information held within the kernel about the
+ device will be invalidated. To avoid corruption of a newly inserted piece of
+ media or a replacement device, all accesses to the device will be discarded
+ until the last file descriptor referencing the old device is closed. During
+ this period, all new open attempts will be rejected.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
+<dl class="Bl-tag Bl-compact">
+ <dt><span class="Pa">/dev/da*</span></dt>
+ <dd>SCSI disk device nodes</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DIAGNOSTICS"><a class="permalink" href="#DIAGNOSTICS">DIAGNOSTICS</a></h1>
+<p class="Pp">None.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+ ALSO</a></h1>
+<p class="Pp"><a class="Xr">ada(4)</a>, <a class="Xr">cam(4)</a>,
+ <a class="Xr">geom(4)</a>, <a class="Xr">nda(4)</a>,
+ <a class="Xr">gpart(8)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The <code class="Nm">da</code> driver was written for the CAM SCSI
+ subsystem by <span class="An">Justin T. Gibbs</span>. Many ideas were
+ gleaned from the <code class="Nm">sd</code> device driver written and ported
+ from Mach 2.5 by <span class="An">Julian Elischer</span>.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">September 10, 2022</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>