From: Christof Schmitt <christof.schmitt@de.ibm.com>
To: James Bottomley <James.Bottomley@suse.de>
Cc: linux-scsi@vger.kernel.org
Subject: [patch 0/3] zfcp FC BSG timeout fixes for 2.6.33-rc4
Date: Thu, 14 Jan 2010 17:18:59 +0100 [thread overview]
Message-ID: <20100114161859.790342000@de.ibm.com> (raw)
Here is the patch series for the FC BSG timeout problem. It is based
on the initial proposal here:
http://marc.info/?l=linux-scsi&m=126043474110957&w=2
To summarize the problem and the approach taken: The block layer runs
a timer for each FC BSG request. When the timer expires, the LLD's
bsg_timeout function is called to abort the request. With zfcp, the
hardware does not support aborting the CT or ELS request. Instead the
hardware runs an internal timer that is setup from Linux for each CT
and BSG request. When the request times out in the block layer, the
request data structures are destroyed. When the still pending hardware
request returns, it will access already freed memory.
The solution taken here is to add a special return code to the
bsg_timeout callback to indicate that the block layer timer should be
reset. zfcp uses this to prevent the block layer timeout. To return
the FC BSG request in the time requested by the user, the hardware
timer is setup with the timeout value from the FC BSG request.
The patches apply cleanly on top of 2.6.33-rc4 and the zfcp fixes
posted yesterday.
--
Christof Schmitt
next reply other threads:[~2010-01-14 16:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-14 16:18 Christof Schmitt [this message]
2010-01-14 16:19 ` [patch 1/3] scsi_transport_fc: Allow LLD to reset FC BSG timeout Christof Schmitt
2010-01-14 16:19 ` [patch 2/3] zfcp: Introduce bsg_timeout callback Christof Schmitt
2010-01-14 16:19 ` [patch 3/3] zfcp: Set hardware timeout as requested by BSG request Christof Schmitt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100114161859.790342000@de.ibm.com \
--to=christof.schmitt@de.ibm.com \
--cc=James.Bottomley@suse.de \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox