Age | Commit message (Collapse) | Author |
|
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@
|
|
when workqs were introduced, we provided a second argument so you
could pass a thing and some context to work on it in. there were
very few things that took advantage of the second argument, so when
i introduced pools i suggested removing it. since tasks were meant
to replace workqs, it was requested that we keep the second argument
to make porting from workqs to tasks easier.
now that workqs are gone, i had a look at the use of the second
argument again and found only one good use of it (vdsp(4) on sparc64
if you're interested) and a tiny handful of questionable uses. the
vast majority of tasks only used a single argument. i have since
modified all tasks that used two args to only use one, so now we
can remove the second argument.
so this is a mechanical change. all tasks only passed NULL as their
second argument, so we can just remove it.
ok krw@
|
|
in the scsi_cmd path and iopool backend.
modelled on mfi and mpi.
|
|
ok tedu
|
|
after discussions with beck deraadt kettenis.
|
|
This fixes a format string warning. No change to the format string is
necessary.
suggested by kettenis@
|
|
ok mikeb@
|
|
while it might be ok (and hasnt actually blown up since i committed
that) id rather review the code and enable it explicitely.
|
|
the sc_devs array.
|
|
|
|
|
|
on 64bit archs you can post the descriptor in one go, which is easy. on
32bit you have to post it in halves in the right order, which is not
atomic and requires barriers for ordering.
|
|
|
|
after it.
jmatthew@ figured out i am bad at c.
|
|
int types are easier to work with than shorts. use a compare to handle
ring wraparound rather than a mod operation.
|
|
register ops, so dont need barriers around them.
|
|
|
|
|
|
|
|
|
|
address in it like the one in mpi too.
shrinks load_xs a bit
|
|
|
|
|
|
scsi_tasks are still backed by workq, and i dont like having to allocate
storage to defer work.
sas events that cause hotplug events are queued in the softc to be
handled by a single task that loops on the queue for work. think
levelled interrupts. this has a side effect that interrupts are
necessary to enumerate devices for attachment.
i wrote this toward the end of last year, but thought it best to
wait for 5.5 unlock.
|
|
ok mikeb@
|
|
|
|
|
|
so we can use it in multiple places.
|
|
things could run you out of command slots without this.
|
|
that our chain scatter-gather element is pointing to. the bug
was observed by pedro martelletto with some particular firmware
doing raid 0. the fix wouldn't have been possible without
extensive debugging and spec conformance verification done by
pedro.
tested by pedro, dlg and myself, ok dlg
|
|
mpii(4) works on sparc64 with this.
|
|
|
|
|
|
The host driver must ensure that there is at least one
unused entry in the Reply Free Queue. One way to ensure
that this requirement is met is to never allocate a number
of reply frames that is a multiple of 16.
So bring back the old logic of calculating the RFQ depth and add a
comment explaining why is it done. Duh!
|
|
|
|
provided by the IOC. Cleanup scatter-gather code and add more
comments. Tested by a "make build" and bonnie++ torturing on a
SAS2004 with an IR firmware.
|
|
|
|
have to be not multiple of 16, recalculate request credit and number of
replies if their sum exceeds MaxReplyDescriptorPostQueueDepth. tested
on SAS2004 with bonnie++.
|
|
|
|
|
|
|