MLX(4)
πΎ MLX(4) β the Mylex DAC-family Parallel SCSI RAID driver, bestie edition π
okay so this is from the Kernel Interfaces Manual, section 4 (that's the kernel-drivers girlies π
), and it's literally all about mlx, the Mylex DAC-family Parallel SCSI RAID driver. buckle up, it's giving hardware era nostalgia β¨
πΈ NAME πΈ
mlx β the Mylex DAC-family Parallel SCSI RAID driver. that's it, that's the name, and honestly? iconic. π
β¨ SYNOPSIS β¨
so if you wanna bake this driver into the kernel, you gotta drop these lines into your kernel configuration file, no cap:
device pci
device mlx
or, if you're feeling lazy-in-a-good-way and wanna load it as a module at boot time, just put this line in loader.conf(5):
mlx_load="YES"
periodt. that's the whole vibe check. π«Ά
π DESCRIPTION π
the mlx driver is here to provide support for Mylex DAC-family PCI to SCSI RAID controllers β and yes, that includes the versions that got relabeled by Digital/Compaq, so don't come for her, she's been through a rebrand or two. π
π¦ HARDWARE π¦
here's the full guest list π β the mlx driver supports these Parallel SCSI RAID controllers:
- Mylex DAC960P (Wide Fast SCSI-2)
- Mylex DAC960PD / DEC KZPSC (Wide Fast SCSI-2)
- Mylex DAC960PDU (Ultra SCSI-3)
- Mylex DAC960PL (Wide Fast SCSI-2)
- Mylex DAC960PJ (Wide Ultra SCSI-3)
- Mylex DAC960PG (Wide Ultra SCSI-3)
- Mylex DAC960PU / DEC PZPAC (Wide Ultra SCSI-3)
- Mylex AcceleRAID 150 (DAC960PRL) (Wide Ultra2 SCSI)
- Mylex AcceleRAID 250 (DAC960PTL1) (Wide Ultra2 SCSI)
- Mylex eXtremeRAID 1100 (DAC1164P) (Wide Ultra2 SCSI)
- RAIDarray 230 controllers, aka the Ultra-SCSI DEC KZPAC-AA (1-ch, 4MB cache), KZPAC-CA (3-ch, 4MB), KZPAC-CB (3-ch, 8MB cache)
literally a whole roster. some real main character energy on that list π₯
π DIAGNOSTICS π
this is the part where the controller and the driver just start talking at you in the kernel log. every single message is catalogued below, organized by vibe. don't skip, there's lore here π
π§ Controller initialisation phase
mlx%d: controller initialisation in progress...
mlx%d: initialisation complete
the controller firmware is out here doing its little initialisation thing β either it's in progress, or it's done. either way, slay. β¨
mlx%d: physical drive %d:%d not responding
bestie that drive at channel:target is not responding π it may have failed or straight-up been removed.
mlx%d: spinning up drives...
drive startup is happening as we speak β and heads up, this may take several minutes, so go get a snack. π
mlx%d: configuration checksum error
the array configuration has become corrupted. not the vibe. π
mlx%d: mirror race recovery in progress
mlx%d: mirror race on a critical system drive
mlx%d: mirror race recovery failed
these error codes areβ¦ undocumented. iykyk π«
mlx%d: physical drive %d:%d COD mismatch
the configuration data on the drive at channel:target doesn't match the rest of the array. awkward. π
mlx%d: system drive installation aborted
errors happened and prevented one or more system drives from being configured. cancelled. π«
mlx%d: new controller configuration found
the controller found a configuration on disk that supersedes the one in its nonvolatile memory β so it will reset and come up with the new configuration. glow-up complete π
mlx%d: FATAL MEMORY PARITY ERROR
firmware detected a fatal memory error β and the driver will not attempt to attach to this controller. like, at all. π
mlx%d: unknown firmware initialisation error %x:%x:%x
an unknown error happened during initialisationβ¦ and it will be ignored. mystery box behavior, we love to see it π
π Driver initialisation/shutdown phase:
mlx%d: can't allocate scatter/gather DMA tag
mlx%d: can't allocate buffer DMA tag
mlx%d: can't allocate s/g table
mlx%d: can't make initial s/g list mapping
mlx%d: can't make permanent s/g list mapping
mlx%d: can't allocate interrupt
mlx%d: can't set up interrupt
a resource allocation error occurred while initialising the driver. initialisation has failed and the driver will not attach to this controller. she's not coming to the party π
mlx%d: error fetching drive status
couldn't fetch the current status of all system drives β attachment of system drives will be aborted. nope, not today. π
mlx%d: device_add_child failed
creating the system drive instances failed, so attachment of one or more system drives may have been aborted. mess. π
mlxd%d: detaching...
the indicated system drive is being detached. bye bestie π
mlxd%d: still open, can't detach
the indicated system drive is still open or mounted, so the controller cannot be detached. she's busy, leave her alone. β
mlx%d: flushing cache...
the controller cache is being flushed before detach or shutdown. tidy queen π§Ό
π¦ Operational diagnostics:
mlx%d: ENQUIRY failed - %s
mlx%d: ENQUIRY2 failed
mlx%d: ENQUIRY_OLD failed
mlx%d: FLUSH failed - %s
mlx%d: CHECK ASYNC failed - %s
mlx%d: REBUILD ASYNC failed - %s
mlx%d: command failed - %s
the controller rejected a command β for the reason given. rude, but okay. π
mlx%d: I/O beyond end of unit (%u,%d > %u)
mlx%d: I/O error - %s
an I/O error was reported by the controller. π¬
mlx%d: periodic enquiry failed - %s
an attempt to poll the controller for status failed β for the reason given. the poll just didn't hit. π
mlx%d: mlx_periodic_enquiry: unknown command %x
the periodic status poll issued a command which has become corrupted. glitch in the matrix π
mlxd%d: drive offline
mlxd%d: drive online
mlxd%d: drive critical
the system disk indicated has changed state. we're keeping tabs π
mlx%d: physical drive %d:%d reset
mlx%d: physical drive %d:%d killed %s
mlx%d: physical drive %d:%d error log: sense = %d asc = %x asq = %x
mlx%d: info %4D csi %4D
the drive at channel:target got reset, killed for the given reason, or hit a SCSI error. rest in pieces πͺ¦
mlx%d: unknown log message type %x
mlx%d: error reading message log - %s
an error occurred while trying to read the controller's message log. can't read the group chat rn π
mlxd%d: consistency check started
mlx%d: consistency check completed
a user-initiated consistency check has started/completed. you did that π
mlx%d: drive rebuild started for %d:%d
mlx%d: drive rebuild completed
a user-initiated physical drive rebuild has started/completed. self-care for the array πΈ
mlx%d: background check/rebuild operation started
mlx%d: background check/rebuild operation completed
an automatic system drive consistency check or physical drive rebuild has started/completed. she works hard behind the scenes β¨
mlx%d: channel %d pausing for %d seconds
mlx%d: channel %d resuming
mlx%d: pause command failed - %s
mlx%d: pause failed for channel %d
mlx%d: resume command failed - %s
mlx%d: resume failed for channel %d
controller/channel pause operation notification. (and real talk β channel pause is not currently supported on any controller.) π«
mlx%d: controller wedged (not taking commands)
the controller is not responding to attempts to submit new commands. she's stuck, stuck. π
mlx%d: duplicate done event for slot %d
mlx%d: done event for nonbusy slot %d
corruption has occurred β either in the controller's onboard list of commands or in the driver itself. pick your fighter π
π SEE ALSO π
mlxcontrol(8)β go check her out, she's the whole point of cross-referencing π«Ά
π AUTHORS π
the mlx driver was written by Michael Smith <msmith@FreeBSD.org>. legend behavior.
this manual page was written by Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org> and Michael Smith <msmith@FreeBSD.org>. collab of the year, no notes π
β οΈ BUGS β οΈ
okay, real talk, the caveats β reading these is mandatory, i don't make the rules:
- the DEC KZPSC has insufficient flash ROM to hold any reasonably recent firmware. this has caused problems for this driver. not her fault, she's doing her best π
- the driver does not yet support the version 6.x firmware as found in the AcceleRAID 352 and eXtremeRAID 2000 and 3000 products. so if that's your hardwareβ¦ not yet, bestie. π
π and that's the whole page!! every flag, every message, every controller, every warning β nothing skipped, nothing invented. facts preserved, vibes immaculate. π¦
kiss kiss, this page came to you from the Debian edition of the manual, dated May 27, 2025 β that's the MLX(4) footer energy, and we're closing it out with a lil π
and a π«Ά. love u, go RAID responsibly β¨
π¦ where this page comes from
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- π the page's license: BSD-2-Clause
- Copyright (c) 2003 David O'Brien
- Copyright (c) 2000 Jeroen Ruigrok van der Werven
- Copyright (c) 2000 Michael Smith
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms