mps driver overwrite using loader.conf

Desai, Kashyap Kashyap.Desai at lsi.com
Wed Feb 8 18:54:09 UTC 2012


With upstream mps driver, I am trying to do some testing with my next driver.

I  followed below process to overwrite existing mps driver with new one.

1. My kernel has pre-compiled mps driver (It is not part of module)
2. While booting itself I wants to replace with my next version of mps driver.
3. I copy my new "mps" driver at /boot/kernel/ location
4. modify /boot/defaults/loader.conf with <mps_load = "YES">

Now I see new mps is getting loaded instead of inbuilt mps driver.
Here is output of sysctl with mpslsi driver loaded into kernel. [For LSI's internal tracking this driver is called mpslsi ]
device  mps
hw.mps.disable_msi: 0
hw.mps.disable_msix: 0
dev.mpslsi.0.%desc: LSI SAS2008
dev.mpslsi.0.%driver: mpslsi
dev.mpslsi.0.%location: slot=0 function=0
dev.mpslsi.0.%pnpinfo: vendor=0x1000 device=0x0072 subvendor=0x1000 subdevice=0x0072 class=0x010700
dev.mpslsi.0.%parent: pci6
dev.mpslsi.0.debug_level: 0
dev.mpslsi.0.disable_msix: 0
dev.mpslsi.0.disable_msi: 0
dev.mpslsi.0.firmware_version: 12.250.01.00
dev.mpslsi.0.driver_version: 13.255.00.01		< -- New Driver
dev.mpslsi.0.io_cmds_active: 0
dev.mpslsi.0.io_cmds_highwater: 1
dev.mpslsi.0.chain_free: 2048
dev.mpslsi.0.chain_free_lowwater: 2047
dev.mpslsi.0.max_chains: 2048
dev.mpslsi.0.chain_alloc_fail: 0


_But_ Strange thing is if I unload my "mps" module, there is still some stale entry in kernel.
After I unload mpslsi driver here is output of sysctl
device  mps
hw.mps.disable_msi: 0
hw.mps.disable_msix: 0

What is this "device mps" instance ? 
I want to understand How FreeBSD handle this kind of scenario ?

~ Kashyap


More information about the freebsd-scsi mailing list