On 12/11/2012 01:46 PM, Martin Peschke wrote:
Hello Hannes,
fc_eh_it_nexus_loss_handler() is invoked as the
eh_target_reset_handler() callback and the
eh_bus_reset_handler() is removed.
lpfc_target_reset_handler(), which is replaced by your patch, used to
issue a TARGET_RESET task management function over FCP in the
eh_target_reset_handler() callback. What's wrong with that?
Nothing per se.
Only that the TARGET_RESET TMF has been removed from SAM-3/FCP-3
onwards, so there might not be any functionality behind it.
But drivers can supply the functionality via ->eh_it_nexus_loss
callback.
I didn't want to touch the existing eh_target_reset_handler myself
as I'm not familiar with the firmware specifics.
That is being left as an exercise to the reader :-)
The main point here is that we're emulating REMOVE I_T NEXUS by
setting the port state to BLOCKED and invoke dev_loss_tmo.
This will prevent any further I/O to be send down.
With the original handler the port state wasn't modified,
which led to excessive recovery times when no RSCN was received.
And yes, I had several bug reports now where the HBA did not receive
RSCNs, either due to a switch malfunction or due to an error injection.
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@xxxxxxx +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html