- created a boot-time tunable (hw.ciss.max_logical) that allowed
changing the maximum number of logical drives (defaults to
CISS_MAX_LOGICAL, which was then 15 according to src/sys/dev/ciss/cissvar.h)
- changed the behavior of another boot-time tunable
(hw.ciss.expose_hidden_physical) such that a value of 2 exposed the hidden physical direct access devices as da(4) devices, where a value of 1 retained the original behavior of exposing them only as pass(4) devices
- updated the ciss(4) manual page regarding the above modifications
This let me use a 20-disk storage array as a JBOD, which I then added to a ZFS pool.
Open source kernel development is gatekeeped to hell and back, so this didn't go anywhere. It's also a pretty minor change. Still, I'm pretty proud of figuring out to patch a device driver.
I patched FreeBSD's ciss driver:
- created a boot-time tunable (hw.ciss.max_logical) that allowed changing the maximum number of logical drives (defaults to CISS_MAX_LOGICAL, which was then 15 according to src/sys/dev/ciss/cissvar.h)
- changed the behavior of another boot-time tunable (hw.ciss.expose_hidden_physical) such that a value of 2 exposed the hidden physical direct access devices as da(4) devices, where a value of 1 retained the original behavior of exposing them only as pass(4) devices
- updated the ciss(4) manual page regarding the above modifications
This let me use a 20-disk storage array as a JBOD, which I then added to a ZFS pool.
Open source kernel development is gatekeeped to hell and back, so this didn't go anywhere. It's also a pretty minor change. Still, I'm pretty proud of figuring out to patch a device driver.