fast fail improvements (take2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following patches were made over scsi-misc. They are a resend
of this patchset
http://marc.info/?l=linux-scsi&m=121263014808604&w=2
http://marc.info/?l=linux-scsi&m=121263014908607&w=2
http://marc.info/?l=linux-scsi&m=121263014908610&w=2
http://marc.info/?l=linux-scsi&m=121263015008613&w=2
http://marc.info/?l=linux-scsi&m=121263015108620&w=2
http://marc.info/?l=linux-scsi&m=121263015008616&w=2
http://marc.info/?l=linux-scsi&m=121263015208626&w=2
http://marc.info/?l=linux-scsi&m=121263015108623&w=2 
and this one
http://marc.info/?l=linux-scsi&m=121583046130743&w=2
but I fixed up the bit setting per JamesS's comment,
made sure there were no merge conflicts with the current code
and fixed up the last patches that broke up the fast fail
bits in the block layer.

The patches are supposed to handle the following issues we
have been hitting with multipath.

1. We only have a choice of REQ_FASTFAIL or normal. Different
drivers like multipath only want transport errors (the
scsi dh modules can override for specific device errors), but
today if a LLD feels it should retry a error on the same
path it is overridden due to REQ_FASTFAIL failing all possibley
retrybale errors. This causes premature path failures
and controller switches which can be expensize.

2. When the fast fail tmo fires IO in the blocked queues
are not fast failed. They sit in the queue, so dm-multipath
has to wait for the dev_loss_tmo which is normally in minutes
where the fast io fail tmo is less than 10 seconds.

3. When drivers block the transport object, they end up
returning errors at different times because of the error value
they happened to select. And for these errors
we can use the same error value and implement the same
behavior across drivers so dm-multipath knows what
to expect without know what driver is being used.


------------------------------------------------------------
These first two patches fix #2, by making sure fc fails
blocked when the fast io fail timer runs.
0001-fc-class-unblock-target-after-calling-terminate-cal.patch
0002-fc-drivers-remove-scsi_target_unblock-calls-in-term.patch
They were acked by JamesS on the list, but I rediffed them and
fixed up the bit setting.


----------------------------------------------------------
The next patches fix #3.
0003-scsi-add-transport-host-byte-errors-v3.patch
0004-iscsi-class-libiscsi-and-qla4xxx-convert-to-new-tr.patch
0005-fc-class-Add-support-for-new-transport-errors.patch
0006-lpfc-start-to-use-new-trasnport-errors.patch
0007-qla2xxx-use-new-host-byte-transport-errors.patch
They build on the first two where we implemented the
same fast io fail tmo behavior for iscsi and fc.
For these patches I added two new host byte error
values. The transport classes and drivers can return these
instead of abusing the current ones. They allow the
fc and iscsi class to requeue IO until the fast io fail
or replacement_timeout timers fire.

The fc parts were acked by JamesS. The iscsi parts are ok.
The qla2xxx patch is just missing a review by Andrew.

----------------------------------------------------
The last two patches fix #1.
0008-block-separate-failfast-into-multiple-bits.patch
0009-scsi-modify-scsi-to-handle-new-fail-fast-flags.patch

They do not have to be merged with the above patches, but I
tested them together and combined they fix a lot of issues users
have reported.

In these patches I just split up FASTFAIL into a driver,
device and transport request so the lower levels do
not have to faill all errors quickly.



--
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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux