| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Bogus chunks pointed out by matthew@ and miod@. No cookies for
marco@ and jasper@.
ok deraadt@ miod@ matthew@ jasper@ macro@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
we're busy, we might not be able to allocate a ccb via scsi_ioh_get
if the pool is empty. this means we wont ack the event, which in
turn means we wont receive further event notifications.
this cuts the event ack code over to using a scsi_iohandler. the
eventack iohandler will be called as soon as a ccb becomes available
for it to use. this guarantees reliable event handling and
acknowledgement, despite how busy the controller might be.
this has bugging me ever since i wrote the event handling code.
tested by hotplugging sata disks.
|
|
|
|
| |
ioh wrappers.
|
|
|
|
|
|
| |
sparsely populated buses.
ok dlg@, krw@
|
|
|
|
|
|
|
|
| |
step in elminating 'struct scsi_device' entirely.
Spotted and initial diff from matthew@.
ok matthew@ dlg@ deraadt@ marco@ miod@
|
|
|
|
|
|
|
| |
rather than as a scan of all attached devices after scsibus is attached.
this will allow the cache enabling on virtual disks to run as part of the
disks attach routine.
|
|
|
|
|
|
|
| |
ioctl requests, and dont pass the proc pointers around for any ioctl
requests in scsi land at all. neither were used, so trim the fat.
ok krw@ marco@
|
|
|
|
|
|
| |
mode pages that control the caches. this adds code that talks to the mpi
chip directly on behalf of those disks so you can enable write caching on
them.
|
|
|
|
|
|
|
| |
copying vendor[8]/product[16]/revision[4] out of struct scsi_inquiry_data
together with one memcopy.
ok krw
|
|
|
|
|
|
|
|
| |
but i suspect it is common to all SPI mpi parts.
problem found and problem diff verified by landry.
ok krw@ landry@ jasper@
|
| |
|
|
|
|
| |
ok dlg@, marco@
|
| |
|
|
|
|
|
|
|
| |
big motivation to implementing iopools. while looking at another issue i
noticed that openings were cut up for each disk.
this cranks openings to maxcmds.
|
|
|
|
|
|
| |
makes output sane on sparc64 and other BE archs.
found by jason george
|
|
|
|
|
| |
and then start attaching it with 0 sensors attached
ok dlg
|
|
|
|
| |
itself now, its not the adapters responsibility anymore.
|
|
|
|
| |
now, so it not our job to free it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to its free ccbs.
this allows the midlayer to schedule access to the bus in a roundrobin
fashion for all consumers on the bus, including io from devices and even
the internal mpi management commands used to poll the state of raid
devices. the result is fairer sharing between disks on the bus and more
reliable sensor updates.
ok krw@ beck@ marco@
tested by beck@
|
|
|
|
|
|
|
| |
this was done for every sensor update, which really screwed up the memory
stats.
noticed by deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
void. Use XS_NO_CCB error in the scsi command (xs) to report the
NO_CCB condition. Eliminates all SUCCESSFULLY_QUEUED and COMPLETE
confusion and untangles the midlayer from the adapter a bit more.
Eyes and some fixes by miod@
There may be some compile issues on little used (i.e. I don't have
any) drivers but the change is mechanical and thus easy to remedy.
ok dlg@
|
|
|
|
|
|
|
|
|
|
|
| |
intercept the ccb_done handling so polled commands set a flag that mpi_poll
tests on. when ccb_done sets the variable, the poll loop breaks and
mpi_poll runs the original ccb_done handler for the ccb completion.
this is a lot simpler than the previous implementation and removes a
mutex.
ok beck@
|
|
|
|
|
|
|
| |
else cares so it's just noise. Drivers that actually look at ITSDONE
are unchanged.
ok marco@ (for his files) dlg@ beck@
|
|
|
|
| |
mpi_bio_get_pg0_raid. the sensor updates dont poll at all now.
|
|
|
|
| |
requests sleep rather than poll for completion.
|
|
|
|
| |
when it used the uninitialized cookie.
|
|
|
|
|
| |
a ccb can now be done with mpi_wait. this switches the cfg page handlers
over from their own tsleep stuff to mpi_wait.
|
|
|
|
|
| |
void *. this will let me stash things other than scsi xfers in the ccb for
ccb_done handlers to use.
|
| |
|
|
|
|
| |
rather than all the replies.
|
|
|
|
|
|
|
|
|
| |
mpi only needs two mutexes, one for the list of free ccbs, and another to
protect the reply doorbell. the latter is necessary to allow polling for
command completion to work in smp systems.
tested on sas and fc hbas. this diff was written over 2 years ago now with
surprisingly few tweaks to handle changes that have occurred since then.
|
|
|
|
|
|
| |
Found by LLVM/Clang Static Analyzer.
ok dlg@ marco@
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the two issues affecting it last time are gone. the first, mishandling of
TRY_AGAIN_LATER is not relevant now that krw got rid of TRY_AGAIN_LATER.
the second, the misbehaving IBM disk was found to be a problem with siop
using ordered tags on most ops combined with the speed of the new code.
putting this in so we can move forward.
ok krw@ "commit please" marco@
|
|
|
|
|
|
|
| |
causing a weird problems on an alpha and also appears responsible for
isp(4) weirdness i havent had a chance to examine yet.
sigh, this makes me sad.
|
|
|
|
|
|
|
| |
the fix for the NO_CCB breakage will follow shortly.
tested by krw@ marco@ johan@
ok krw@ marco@
|
| |
|
|
|
|
|
|
|
|
|
|
| |
TRY_AGAIN_LATER. NO_CCB is a timer based mechanism that can trivially
be made to fail by running IO to two or more disks simultaneously. The
TRY_AGAIN_LATER thing is more subtle because it now is a permanent
failure instead of transient however this is much harder to hit because
something must have gone wrong before it hits.
ok deraadt krw miod
|
|
|
|
|
|
|
|
| |
should remain untouched because it is only for interruptless drivers.
Honor reply queue depth per the spec instead of clipping it at 32.
ok dlg
|
|
|
|
|
| |
on sas hotplug. you can add and remove drives and the kernel will handle it
now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
many luns, or the entire bus), dont report ENXIO as an error to the
caller. this broke autoconf when it tried to forcefully remove a
bus such as umass and it thought there was a failure.
this introduces a way for scsi hbas to call activate/deactivate on
a device based on its target/lun address via a call to scsi_activate().
they can then schedule the actual detach/attach in a thread later via
scsi_req_probe/detach.
the mpi changes tweak the sas event handling code to use these apis
to properly handle attaches and detaches of disks. event handling
is still disabled till i can make it less chatty.
umass breakage reported by form@
|
|
|
|
|
|
| |
turned on. mitigation on io only slows us down.
developed on hardware donated by fox-it.
|
|
|
|
| |
yet...
|
|
|
|
| |
midlayer. always call scsi_done on the xs too.
|
|
|
|
|
|
| |
and wwnn so scsibus can use it.
requested by and ok deraadt@
|
|
|
|
| |
ok marco@
|
|
|
|
|
|
| |
as additional argument. This will allow intermediate layers between
scsi devices such as sd and scsi host adapters to take appropriate
action if necessary.
|
| |
|
|
|
|
| |
ok dlg
|