12 Jul, 2008
16 commits
-
This is the second part of the iscsi task merging, and
all it does it rename iscsi_cmd_task to iscsi_task and
mtask/ctask to just task.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
Convert ib_iser to support merged tasks.
Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
Convert iscsi_tcp to support merged tasks.
Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
There is no need to have the mgmt and cmd tasks separate
structs. It used to save a lot of memory when we overprealocated
memory for tasks, but the next patches will set up the
driver so in the future they can use a mempool or some other
common scsi command allocator and common tagging.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
This patch modifies libiscsi, so drivers like bnx2i and iser can execute
a command from queuecommand/send_pdu instead of having to be queued to
be run in a workq.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
Currently to get a ctask from the session cmd array, you have to
know to use the itt modifier. To make this easier on LLDs and
so in the future we can easilly kill the session array and use
the host shared map instead, this patch adds a nice wrapper
to strip the itt into a session->cmds index and return a ctask.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
After the stop_conn callback has returned the LLD should not
touch the scsi cmds. iscsi_tcp and libiscsi use the
conn->recv_lock and suspend_rx field to halt recv path
processing, but iser does not have any protection.This patch modifies iser so that userspace can just
call the ep_disconnect callback, which will halt
all recv IO, before calling the stop_conn callback so
we do not have to worry about the conn->recv_lock and
suspend rx field. iser just needs to stop the send side
from accessing the ib conn.Fixup to handle when the ep poll fails and ep disconnect
is called from Erez.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
Some drivers want to be able to just pass in the driver data pointers
to the iscsi objects. To enable this we need the iscsi printk macro
to cast the object.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
This removes the session and conn data_size fields from the iscsi_transport.
Just pass in the value like with host allocation. This patch also makes
it so the LLD iscsi_conn data is allocated with the iscsi_cls_conn.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
This finishes the host/session unbinding, by adding some helpers
to add and remove hosts and the session they manage.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
bnx2i allocates a host per netdevice but will use libiscsi,
so this unbinds the session from the host in that code.This will also be useful for the iser parent device dma settings
fixes.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
This renames the iscsi_host to iscsi_cls_host to match the other
structs, because libiscsi wants to use the iscsi_host name in
the future.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
max_cmd_len and max_conn are not really used. max_cmd_len is
always 16 and can be set by the LLD. max_conn is always one
since we do not support MCS.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
iscsi offload (bnx2i and qla4xx) allocate a scsi host per hba,
so the session creation path needs a shost/host_no argument.
Software iscsi/iser will follow the same behabior as before
where it allcoates a host per session, but in the future iser
will probably look more like bnx2i where the host's parent is
the hardware (rnic for iser and for bnx2i it is the nic), because
it does not use a socket layer like how iscsi_tcp does.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley -
When the firmware is in Fault state it will be identifed only when the next time
the driver access the IOC state.
This patch includes a polling function in the driver which will be executed in
regular interval to check the status of the firmware and if it is in Fault
state, then the firmware will be reset by the driver.Signed-off-by: Sathya Prakash
Signed-off-by: James Bottomley -
The initial period is set to 0xFF
Signed-off-by: Sathya Prakash
Signed-off-by: James Bottomley
05 Jun, 2008
24 commits
-
Updating copyright statement to include the year 2008
Signed-off-by: Sathya Prakash
Signed-off-by: James Bottomley -
Updating driver version to 3.04.07 from 3.04.06
Signed-off-by: Sathya Prakash
Signed-off-by: James Bottomley -
drivers/s390/scsi/zfcp_dbf.c:692:2: warning: context imbalance in
'zfcp_rec_dbf_event_thread' - different lock contexts for basic blockReplace the parameter indicating if the lock is held with a new entry
function that only acquires the lock. This makes the lock handling
more visible and removes the sparse warning.Signed-off-by: Christof Schmitt
Signed-off-by: Martin Peschke
Signed-off-by: James Bottomley -
There is no need to pack data structures which describe the
contents of records in the new recovery trace.lcrash currently depends on the binary format for the other traces,
removing the packed attribute from all traces would break trace
debugging with lcrash.Signed-off-by: Martin Peschke
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
This change better spreads trace levels of recovery related events.
There was an overlap of traces for some recovery triggers and the
processing of recovery actions.Signed-off-by: Martin Peschke
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
Store the index of the buffer in the inbound queue used to report
request completion in trace record for request coompletion.
This piece of information allows to better compare qdio and zfcp traces.Signed-off-by: Martin Peschke
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
sbal_last is more appropriate, because it matches sbal_first.
Signed-off-by: Martin Peschke
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
sbal_last is confusing, as it is not the last one actually used,
but just a limit. sbal_limit is a better name.Signed-off-by: Martin Peschke
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
This field is not needed, because it designates an index with a fix offset
from sbal_first. It's name is confusing anyway.Signed-off-by: Martin Peschke
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
Remove some sparse warnings by telling sparse that zfcp_req_create
acquires the lock for the request queue.Signed-off-by: Christof Schmitt
Signed-off-by: Martin Peschke
Signed-off-by: James Bottomley -
If allocation of a status buffer failed the function incorrectly
returned 0 instead of -ENOMEM.Signed-off-by: Heiko Carstens
Signed-off-by: Martin Peschke
Signed-off-by: James Bottomley -
When allocating memory for GID_PN nameserver requests, the allocation
function stores the pointer to the mempool, but then overwrites the
pointer via memset. Later, the wrong function to free the memory will
be called, since this is based on the stored pointer.Fix this by first initializing the struct and then storing the pointer.
Signed-off-by: Christof Schmitt
Signed-off-by: Martin Peschke
Signed-off-by: James Bottomley -
Processing of an unsolicted status request can lead to a locking race
of the request_queue's queue_lock during the recreation of the
used up status read request while still in interrupt context
of the response handler.Detaching the 'refill' of the long running status read requests from
the handler to a scheduled work is solving this issue.In addition, each refill-run is trying to re-establish the full amount
of status read requests, which might have failed in earlier runs.Signed-off-by: Swen Schillig
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
This patch makes the needlessly global struct mpt_proc_root_dir static.
Signed-off-by: Adrian Bunk
Acked-by: "Prakash, Sathya"
Signed-off-by: James Bottomley -
USB sometimes doesn't return an error but instead returns a residue
value indicating part (or all) of the command wasn't completed. So if
the driver _done() error processing indicates the command was fully
processed, subtract off the residue so that this USB error gets
propagated.Cc: Alan Stern
Signed-off-by: James Bottomley -
power.power_state is scheduled for removal. This patch (as1055)
removes all uses of that field from the SCSI mesh driver.Signed-off-by: Alan Stern
Acked-by: Paul Mackerras
Signed-off-by: James Bottomley -
drivers/scsi/aacraid/linit.c:865:9: warning: symbol 'aac_show_serial_number' was not declared. Should it be static?
Signed-off-by: Harvey Harrison
Acked-by: Mark Salyzyn
Signed-off-by: James Bottomley -
Update the documented list of products supported by the aacraid driver.
Signed-off-by: Mark Salyzyn
Signed-off-by: James Bottomley -
The latency information is provided on a SCSI device level (LUN)
which can be found at the following location/sys/class/scsi_device//device/cmd_latency
/sys/class/scsi_device//device/read_latency
/sys/class/scsi_device//device/write_latencyEach sysfs attribute provides the available data: min, max and sum for
fabric and channel latency and the number of requests processed.An overrun of the variables is neither detected nor treated. The file
has to be read twice to make a meaningful statement, because only the
differences of the values between the two reads can be used. A reset
of the values can be achieved by writing to the attribute.Signed-off-by: Swen Schillig
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
Add the infrastructure to retrieve the fabric and channel latencies
from FSF commands for each SCSI command that has been processed. For
each unit, the sum, min, max and number of requests is tracked.Signed-off-by: Swen Schillig
Signed-off-by: Christof Schmitt
Signed-off-by: James Bottomley -
This patch just removes infrastructure that provided support for hardware
handlers in the dm layer as it is not needed anymore.Signed-off-by: Chandra Seetharaman
Acked-by: Alasdair G Kergon
Signed-off-by: James Bottomley -
This patch removes the 3 hardware handlers that currently exist
under dm as the functionality is moved to SCSI layer in the earlier
patches.[jejb: removed more makefile hunks and rejection fixes]
Signed-off-by: Chandra Seetharaman
Acked-by: Alasdair G Kergon
Signed-off-by: James Bottomley -
This patch just removes the dm layer's path initialization completion
routine. This is separated from the other patch(scsi_dh: Use SCSI
device handler in dm-multipath) Just to make that patch more readable.Signed-off-by: Chandra Seetharaman
Acked-by: Alasdair G Kergon
Signed-off-by: James Bottomley -
Before this patch set (SCSI hardware handlers), initialization of a
path was done asynchronously. Doing that requires a workqueue in each
device/hardware handler module and leads to unneccessary complication
in the device handler code, making it difficult to read the code and
follow the state diagram.Moving that workqueue to this level makes the device handler code simpler.
Hence, the workqueue is moved to dm level.A new workqueue is added instead of adding it to the existing workqueue
(kmpathd) for the following reasons:
1. Device activation has to happen faster, stacking them along
with the other workqueue might lead to unnecessary delay
in the activation of the path.
2. The effect could be felt the other way too. i.e the current
events that are handled by the existing workqueue might get
a delayed response.Signed-off-by: Chandra Seetharaman
Acked-by: Alasdair G Kergon
Signed-off-by: James Bottomley