Age | Commit message (Collapse) | Author |
|
|
|
ok krw@, jsg@
|
|
(ST373405FSUN72G) respond to a START STOP UNIT command that spins down the
disk with a "Logical Unit Not Ready, Initialization Command Required".
Besides causing some dmesg spam, our sd(4) driver responds to such a response
by spinning the disk back up. Prevent this from happening by respecting
the SCSI_IGNORE_NOT_READY flag and using that flag when spinning down the
disk.
ok miod@
|
|
ok mpi@ kspillner@
|
|
CIRCLEQ_* is deprecated and not called in the tree. The other queue types
have *_END macros which were added for symmetry with CIRCLEQ_END. They are
defined as NULL. There's no reason to keep the other *_END macro calls.
ok millert@
|
|
uses it. dont need to include workq.h anymore here either now.
|
|
tested on mpi(4) sas.
|
|
|
|
after discussions with beck deraadt kettenis.
|
|
DVACT_POWERDOWN is propagated in this subtree, there is no need for
this shutdown hook anymore. RIP.
ok kettenis@
|
|
should be safe to call the midlayer io path without the biglock now.
|
|
|
|
the kernel biglock. the plan is to have the midlayer assume its
running without the biglock, but that it cant call adapters or
devices without taking the biglock first.
this diff just wraps the calls to the adapter iopool get and put
handlers up in the biglock.
this is safe now because of kettenis' commit to src/sys/kern/init_main.c
r1.120. ive been running this in various places since early 2011.
|
|
ok dlg@
|
|
a whole bus, a target, or a specific lun on a target from the bioctl
and scsi_req paths.
i want to reuse this factored code for something claudio wants.
|
|
is to check xs->status on completion to make sure it worked.
|
|
ok dlg@
|
|
tested by jmatthew@
|
|
it rather than on attach. just need to implement a sense handler
to detect failover and this is done.
thanks to jmatthew@ for plugging this together again for me.
|
|
a paths status, rather than on attach. the status it returns depends
on the type of device you have. hds provides two types of arrays,
symmetric and asymmetric.
on a symmetric device you can shove io down any path to any port
on any controller and it will work. on symmetric devices we say all
paths are part of the same group, and unconditionally return active
path status to any check request.
on asymmetric devices we group paths by which controller in teh
array they connect to. the controllers return whether theyre providing
a preferred path via a couple of status bits in a hds specific vpd
page, so we query that and return the state of the bits.
unfortunately hds arrays dont report change of lun ownership in any
way, so we dont currently have any way of failing over at the moment.
ill have to think about the least worst way to handle that.
tested by deraadt@ on hppa
|
|
|
|
invalid request due to current lu ownership
|
|
driver re-probe for its capacity.
Allow to fully recognized Lexar JumpDrive S33 USB 3.0 sticks.
ok krw@, dlg@
|
|
dmesg, or write operations just fail with EACCES for no obvious reason
ok krw@ tedu@
|
|
identify them over multiple paths using their wwnn.
|
|
generate a devid. if its an fc device this is good enough.
|
|
|
|
use it should cause a fault.
based on discussion with miod@
|
|
outside scsi_base.c.
this will allow adapters to restrict access to iopool resources
based on some state, and then kick the pending requests on the pool
when the state comes good again.
ive been avoiding this for a long time, but it is the least worst
way to deal with some uses of XS_NO_CCB.
discussion with kettenis@ helped me decide this was right.
|
|
kernel resumes normal (non-cold, able to run processes, etc) operation.
Previously we were relying on specific DVACT_RESUME op's in drivers
creating callback/threads themselves, but that has become too common,
indicating the need for a built-in mechanism.
ok dlg kettenis, tested by a sufficient amount of people
|
|
resurrection of the bad idiom in the tree.
sufficient review by miod, kettenis, tedu
|
|
|
|
variables. Some random whitespace/knf repairs encountered on the way.
ok miod@ on inspection, feedback & more suggestions from millert@
|
|
|
|
|
|
Ditto disksize field of sd_softc and a couple of local calculation
variables.
scsi/* now daddr_t clean except where they really are 512-byte
blocks.
|
|
to cd.c and call it cd_size(), like sd_size() lives in sd.c.
Tweak some daddr_t variables to u_int64_t on the way, when they are
for disk sector numbers, not 512-byte block numbers.
|
|
Prefer DL_ macros over handrolling. Fix the loop to allow for bigger
(highly unlikely) bunches of bits to be broken up into rw_10 sized
(<= UINT32_MAX sectors) chunks. Add check to make sure i/o request
starts at a sector address.
|
|
'secno'. This is what sddump() already does and consistant is good.
No function change.
|
|
repeated handrolling of same code. Use daddr_t variable to
calculate daddr_t return values, and u_int64_t variables to
calculate disk sector values.
No functional change.
|
|
paths are lost and groups become empty) we dont try and do stuff with it
that causes null derefs and awesome panics.
|
|
|
|
the wrappers around handling of pending work, theyre not semaphores.
names from tedu@
ok krw@ guenther@
|
|
than the real device drivers. ses returns 3 on some dells, which could be
confusing for autoconf if it has to decide between that and a path driver.
|
|
code that picks the next path. we assume roundrobin within a group
of paths now. the asym sym(4) devices work around this by putting
every path in its own group.
|
|
of devices. fixes compilation when theyre enabled.
how embarrassment.
|
|
other things scsi_sem_enter. the things protected by this do as
much work as they can, so they only need to be told to try again
once.
this isnt a semaphore anymore (and probably never was) so there's
a name change coming too.
|
|
if a controller sends sense data back, the path driver can tell
mpath that its indicating failover which kicks off an iteration
over all the groups until one says its active. if no groups claim
to be active, a timeout fires the process off again after a second.
you can start controller handover on rdac (well, an md3200i is all
i had to test with, others might need more work) and everything
keeps going. ill try to get to emc and hds working when i can poke
hardware again.
|
|
|
|
|