TWS(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’– TWS(4) β€” the 3ware RAID controller tea πŸ’–

okay so real quick, bestie: this is the manual page for tws, from the Kernel Interfaces Manual, and honestly? it's giving "niche but iconic." let's get into it 🫢


✨ NAME ✨

tws β€” the driver for the 3ware 9750 SATA+SAS 6Gb/s RAID controller card. yes that's a lot of words, but it's literally just the driver that makes those cards go. periodt.


✨ SYNOPSIS ✨

so there are two ways to get this driver into your life, and ngl both are easy.

way 1: compile it into the kernel β€” drop these lines into your kernel configuration file:

device scbus
device tws

way 2: load it as a module at boot time β€” put this line into loader.conf(5):

tws_load="YES"

boom. that's it. πŸ’…


✨ DESCRIPTION ✨

okay so the tws driver provides support for LSI's 3ware 9750 SATA+SAS 6Gb/s RAID controller cards. that's the whole personality.

these controllers feature the LSISAS2108 6Gb/s SAS RAID-on-Chip (ROC) β€” cute acronym, right? β€” and they come in 4- and 8-port configurations. and the feature list? she's stacked:

  • supports RAID levels 0, 1, 5, 6, 10, 50 and single disk
  • handles 96 SATA and/or SAS hard drives and SSDs

for further hardware information, see http://www.lsi.com/ 🌐


🌈 HARDWARE 🌈

the tws driver supports the following SATA/SAS RAID controller:

  • LSI's 3ware SAS 9750 series πŸ‘‘

that's the list. short and slay.


πŸŽ€ LOADER TUNABLES πŸŽ€

so these tunables can be set at the loader(8) prompt before booting the kernel, or stored in loader.conf(5). pick your fighter πŸ’–

  • hw.tws.cam_depth β€” the maximum queued CAM SIM requests for one controller. the default value is 256.
  • hw.tws.enable_msi β€” this tunable enables MSI support on the controller if set to a non-zero value. the default value is 0.
  • hw.tws.queue_depth β€” the maximum queued requests for one controller. (no default listed, so don't come for me 😭)
  • hw.tws.use_32bit_sgls β€” limit the driver to use only 32-bit SG elements regardless whether the operating system is running in 64-bit mode. the default value is 0.

πŸ¦‹ FILES πŸ¦‹

  • /dev/da? β€” array/logical disk interface
  • /dev/tws? β€” management interface

πŸ’€ DIAGNOSTICS πŸ’€

okay listen up, this part actually matters:

whenever the driver encounters a command failure, it prints out an error code in the format "ERROR: (<error source>: <error code>):", followed by a text description of the error. so if you see that, that's your sign πŸ‘€

there are other error messages and warnings that the driver prints out, depending on the kinds of errors that it encounters.

and if the driver is compiled with TWS_DEBUG defined, it prints out a whole bunch of debug messages. like, a whole bunch. prepare yourself 🫠


🌸 SEE ALSO 🌸


πŸ‘‘ AUTHORS πŸ‘‘

the tws driver was written by Manjunath Ranganathaiah for LSI, and this manual page was written by Xin LI <delphij@FreeBSD.org> for iXsystems, Inc. legends, honestly 🫢


and that's the whole page, bestie! this one came from Debian, dated October 4, 2011, under the TWS(4) name β€” vintage but still serving πŸ’œβœ¨

πŸ“¦ where this page comes from