mps driver overwrite using loader.conf

Desai, Kashyap Kashyap.Desai at lsi.com
Thu Feb 9 09:00:00 UTC 2012


Hi, I have found another email id to post question so adding " freebsd-questions at freebsd.org" in list.

Here are some more detail.
<mps> driver is inbuilt in FreeBSD-9 and FreeBSD-10-Current.
I want to use my next version of driver <mps> to be loaded instead of <mps> compiled inbuilt in kernel binary.

When I added /boot/loader.conf with mps_load="YES", I see my new driver available at /boot/kernel/mps.ko is getting loaded on
FreeBSD-9-RELEASE, but on FreeBSD-10-CURRENT it always use inbuilt <mps> driver.

Any Idea if this is expected behavior ? Any change in FreeBSD-10 is causing this behavioral difference ?

` Kashyap

> -----Original Message-----
> From: owner-freebsd-scsi at freebsd.org [mailto:owner-freebsd-
> scsi at freebsd.org] On Behalf Of Desai, Kashyap
> Sent: Thursday, February 09, 2012 12:24 AM
> To: Kenneth D. Merry; freebsd-scsi at freebsd.org
> Cc: Justin T. Gibbs; McConnell, Stephen
> Subject: mps driver overwrite using loader.conf
> 
> 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
> _______________________________________________
> freebsd-scsi at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-scsi
> To unsubscribe, send any mail to "freebsd-scsi-unsubscribe at freebsd.org"


More information about the freebsd-questions mailing list