Age | Commit message (Collapse) | Author |
|
|
|
9500, Dell HBA350/5, Lenovo ThinkSystem 440 HBA, Supermicro AOC-S3808/16)
These apparently have a hardware problem that results in reads of some
registers returning all zeros under some transient conditions, which can
apparently be worked around by retrying reads that return 0 up to 3 times.
ok dlg@
|
|
mtx_init() ensures the mutex' lock_object has static storage duration.
This makes it safe to re-enable WITNESS with stack-based mutexes.
OK bluhm@ miod@
|
|
the ddb command 'show witness' to succeed without panicking.
Leaving witness enabled on these mutexes saves a pointer to
struct lock_type on the stack which gets clobbered resulting
in a panic in witness_ddb_display_descendants().
okay miod@
|
|
At least the built-in controller on sparc64 T4-2 machines supports 1E from
which OpenBSD boots just fine, but bioctl(8) reports it as RAID 10:
mpii0 at pci15 dev 0 function 0 "Symbios Logic SAS2008" rev 0x03: msi
mpii0: Solana On-Board, firmware 9.0.0.0 IR, MPI 2.0
scsibus1 at mpii0: 834 targets
sd0 at scsibus1 targ 0 lun 0: <LSI, Logical Volume, 3000> naa.600508e0000000006cd1dcd59022a30a
sd0: 713824MB, 512 bytes/sector, 1461911552 sectors
root on sd0a (efde5b2c6ab7b8ac.a) swap on sd0b dump on sd0b
# bioctl mpii0
Volume Status Size Device
mpii0 0 Online 748498714112 sd0 RAID10
0 Online 500107861504 0:2.0 noencl <ATA CT500MX500SSD1>
1 Online 500107861504 0:1.0 noencl <ATA CT500MX500SSD1>
2 Online 500107861504 0:0.0 noencl <ATA CT500MX500SSD1>
mpii(4) simply munged 1E into 10.
Report it as 0x1E just like softraid(4) RAID 1C is 0x1C internally:
# ./obj/bioctl mpii0 | grep RAID
mpii0 0 Online 748498714112 sd0 RAID1E
OK jsing
|
|
ok krw@
|
|
|
|
feedback and ok tb@ jmc@ ok ratchov@
|
|
member of 'struct scsi_xfer' has always been pointed at the 'struct scsi_generic
cmdstore' member of the same instance. So nuke 'cmdstore' and remove the '*'
from cmd. Take the address of cmd as required by the various casts.
No intentional functional change.
luna88k test by aoyama@, sparc64 test by jmatthew@
Identification of 2009's last *cmd use and ok jmatthew@
|
|
and was always checked in concert with SDEV_ATAPI. Just rely on SDEV_ATAPI and
SDEV_UMASS in all but the one place sd(4) where SDEV_ONLYBIG is set
independently of SDEV_ATAPI/_UMASS.
ok jmatthew@
|
|
driver successfully compiles on one or more of amd64, i386, hppa.
|
|
fields to struct scsibus_attach_args. Nuke the struct scsi_link *
(saa_sc_link) in scaibus_attach_args.
Explicitly initialize each field in scsibus_attach_args variables.
|
|
adapter_buswidth, adapter_softc) from struct scsi_link to struct
scsibus_attach_args.
Additional compile tests by jmatthew@ (sparc64) and aoyam@ (luna88k).
|
|
In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth'
via sb_adapter_buswidth.
Removes last post-config uses of the copies of bus related
information in scsi_link.
|
|
&sc->sc_dev to get a device pointer rather than using the void *
whence we obtained 'sc'.
|
|
(scsi_link.adapter_softc) to a pointer of a particular softc type.
|
|
statement. All to make upcoming diff(s) smaller and easier to read.
|
|
like all the cool drivers do.
|
|
immediately before initializing the only field in the struct.
|
|
the adapter is not a target on the bus.
ok dlg@ as part of a larger diff.
|
|
'minphys()'. Just use & check for NULL instead, since 'minphys()' is
always called on the code path ([cd|sd|st]minphys) that calls
physio().
|
|
in drivers. Terse one liners, NULLs instead of 0's, explicitly specify
all members, etc.
Nuke #ifdef notyet blocks related to the scsi_adapter in aic.
No intentional functional change.
ok tedu@
|
|
I committed the last revision under #ifdef sparc64 to make extra sure not
to break platforms/setups I couldn't test.
Now that deraadt and kettenis both expressed how this should really be MI
and noone came up with a good reason to keep this sparc64 specific, I'm
confident enough to remove the #ifdef.
OK kettenis
|
|
Some controllers generate 128 bit WWIDs for RAID volumes but only has a
64-bit field to report it to the host, so it only puts the
vendor-specified part here (last half of ID string printed when sd*
attaches matches sl->port_wwn in reverse).
As such IDs are not IEEE NAA compliant, OpenBoot PROM -at least on SPARC-
sets the highest nibble to three by convention to mark such volumes as
RAID volumes so that the OS (Solaris) may identify it as such.
This is the last missing piece to make booting off hardware RAID on sparc64
just work; autoconf(9) is now able to match the port WWN against the
bootpath to eventually identify the volume as the root device.
Feedback jmatthew deraadt
OK jmatthew
|
|
ok kn@
|
|
On sparc64, booting root devices off hardware RAID volumes requires the port
WWN to be set for autoconf(9) to match the disk against the bootpath and
therefore identify it as root device.
Pointed out by kettenis
Input and OK jmatthew
|
|
Those can be found in SPARC T4 machines, mine has the F80 800G model.
Since other devices with different flash configurations use the same
vendor/product ID, use the LSI chip name as product name as pointed out
by jmatthew, thanks.
OK jmatthew deraadt
|
|
controller faults if you exceed it, so instead use multiple chain
segments in the same request frame layout.
tested on a SAS3008 (max chain size 8), where MAXPHYS io would occasionally
cause faults
ok dlg@ krw@
|
|
field is in units of 16 bytes, not 4, fixing some but not all problems
reported by Kor son of Rynar.
ok dlg@, who points out this is exactly the same fix as r1.10 of mfii
|
|
|
|
it waited until any port finished scanning before calling
config_pending_decr, but if you have disks on other ports then they
may race with the rest of the kernel getting to mountroot. this
tweaks the config pending dance so it waits for all ports and avoids
the race.
i just got lucky on my system where root was on the first port.
kettenis has been poking a t4 where the disks are all over the place
and he lost the race.
tested by and ok kettenis@
|
|
|
|
this makes the generated code a lot shorter on sparc64, and has no
effect on little endian archs. this has been in my tree for well
over a year without issue.
|
|
ok dlg@ deraadt@ kettenis@
|
|
initialisation so we get the controller capabilities first, allowing a
soft reset instead of hard reset. The new controllers don't work after a
hard reset, and older generations seem fine either way.
tested by robert@ on a sas3408, by dlg@ on a sas2008 (on sparc64) and by me
on a sas3008.
ok dlg@ robert@
|
|
Found with ctfconv(1).
ok jsg@, dlg@
|
|
Coverity CID 1453398; ok deraadt.
|
|
Errors will result in nice clean panic messages so we know what's wrong.
Reviewed by dhill visa natano jsg.
|
|
|
|
|
|
doing requests like that causes lockups on boot.
reported by and this fix test by simon mages
|
|
sas dev pg0 tells us interesting things, like the devices sas addresses
and if it is ATAPI or not.
|
|
mpii devices get attached by processing sas discovery events after
threads are running, but if you have a lean (in terms of devices)
and fast machine, these events might run after mountroot.
this change has mpii use config_pending_incr() before it attaches
scsibus, and runs config_pending_decr() after the first scan of the
bus is complete.
to make sure config_pending_decr() is run after the scsi attach/detach
events are processed, the MPII_EVENT_SAS_DISCOVERY events are
deferred to the same context that the MPII_EVENT_SAS_TOPOLOGY_CHANGE_LIST
events run in.
ok jmatthew@
|
|
generations.
tested on a Lenovo N2215 (SAS3008)
ok dlg@ deraadt@
|
|
value.
Specs from mikeb@, ok dlg@
|
|
Lets Bacula find the end of medium on LTO5 drive.
Reported & fix tested by Kor son of Rynar.
ok mikeb@ deraadt@
|
|
ok mpi@ millert@
|
|
This should make mpii(4) work on i386 again, apparently.
Problem identified and a slightly different fix proposed
by Christiano F. Haesbaert and Pedro Martelletto of Bitrig.
Huge thanks for tracking this down, guys!
|
|
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
seen on MP kernels when doing bulk io transfers from a multithreaded program
(bacula-fd). ok dlg@
|