Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ADA(4)			    Kernel Interfaces Manual			ADA(4)

NAME
       ada -- ATA Direct Access	device driver

SYNOPSIS
       device ada

DESCRIPTION
       The ada driver provides support for direct access devices, implementing
       the  ATA	 command  protocol,  that are attached to the system through a
       host adapter supported by the CAM subsystem.

       The host	adapter	must also be separately	configured into	the system be-
       fore an ATA direct access device	can be configured.

COMMAND	QUEUING
       Command queuing allows the device to process multiple transactions con-
       currently, often	re-ordering them to reduce the number  and  length  of
       seeks.	ATA defines two	types of queuing: TCQ (Tagged Command Queuing,
       PATA legacy) and	NCQ (Native Command Queuing, SATA).   The  ada	device
       driver  takes  full  advantage  of NCQ, when supported.	To ensure that
       transactions to distant parts of	the media, which may be	 deferred  in-
       definitely  by  servicing requests closer to the	current	head position,
       are completed in	a timely fashion, an ordered transaction is sent every
       7 seconds during	continuous device operation.

CACHE EFFECTS
       Many direct access devices are equipped with read and/or	write  caches.
       Parameters affecting the	device's cache are reported in device IDENTIFY
       data and	can be examined	and modified via the camcontrol(8) utility.

       The  read  cache	is used	to store data from device-initiated read ahead
       operations as well as frequently	used data.  The	read cache  is	trans-
       parent 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  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 de-
       vice 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 the	vulnerability to a few
       transactions recently reported as complete, but it is nonetheless  rec-
       ommended	that systems with write	cache enabled devices reside on	an Un-
       interruptible  Power  Supply (UPS).  The	ada 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.

SYSCTL VARIABLES
       The  following  variables are available as both sysctl(8) variables and
       loader(8) tunables:

       kern.cam.ada.retry_count

	   This	variable determines how	many times the ada driver will retry a
	   READ	or WRITE command.  This	does not affect	the number of  retries
	   used	 during	 probe	time or	for the	ada driver dump	routine.  This
	   value currently defaults to 4.

       kern.cam.ada.default_timeout

	   This	variable determines how	long the ada driver will  wait	before
	   timing  out	an  outstanding	command.  The units for	this value are
	   seconds, and	the default is currently 30 seconds.

       kern.cam.ada.spindown_shutdown

	   This	variable determines whether to spin-down disks	when  shutting
	   down.   Set to 1 to enable spin-down, 0 to disable.	The default is
	   currently enabled.

       kern.cam.sort_io_queue

       kern.cam.ada.X.sort_io_queue

	   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 SSDs.

       kern.cam.ada.read_ahead

       kern.cam.ada.X.read_ahead

       kern.cam.ada.write_cache

       kern.cam.ada.X.write_cache

	   These  variables  determine	whether	 device	 read-ahead  and write
	   caches should be enabled globally or	per-device or  disabled.   Set
	   to  1  to  enable  write cache, 0 to	disable, -1 to leave it	as-is.
	   Values modified at runtime take  effect  only  after	 device	 reset
	   (using  the	reset  subcommand of camcontrol(8)).  Because of that,
	   this	setting	should be  changed  in	/boot/loader.conf  instead  of
	   /etc/sysctl.conf.   The global default is currently 1.  The per-de-
	   vice	default	is to leave it as-is (follow global setting).

FILES
       /dev/ada*  ATA device nodes

SEE ALSO
       ahci(4),	cam(4),	da(4), mvs(4), nda(4), siis(4)

HISTORY
       The ada driver first appeared in	FreeBSD	8.0.

AUTHORS
       Alexander Motin <mav@FreeBSD.org>

FreeBSD	14.3		       December	20, 2017			ADA(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ada&sektion=4&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help