All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Anderson <andmike@us.ibm.com>
To: James.Smart@Emulex.Com
Cc: James.Bottomley@SteelEye.com, linux-scsi@vger.kernel.org
Subject: Re: [PATCH] updated: suspending I/Os to a device
Date: Fri, 20 Aug 2004 01:55:17 -0700	[thread overview]
Message-ID: <20040820085516.GA5582@us.ibm.com> (raw)
In-Reply-To: <0B1E13B586976742A7599D71A6AC733C02F172@xbl3.ma.emulex.com>

James.Smart@Emulex.Com [James.Smart@Emulex.Com] wrote:
> All True...  and I'm not trying to belittle it.
> 
> The main things that sent me to the LLDD side were:
> 
> 1) The number of timers that had to be running. A single cable pull can be handled by 1 timer in the LLDD, which will always be there. If there's a timer per device - and the config (still small) has 4-8 arrays, each array with 256 LUNs - this is a 1k/2k timers vs 1 scenario. A single device disappearance (a target) is a 256 (or more) vs 1 scenario. Not only the amount of resources for the timers, but also the complexity of when all these timers fire and the same time and start spitting i/o - which is not necessarily coordinated with the LLDD state change. Makes for a lot of fun error handling. I'd rather deal with an LLDD that misses an unblock (easy to spot) vs the race conditions that could occur due to the last point. Granted, this should all work, but its in a location that is typically much harder to test and reproduce.
> 

An option to consider is that what you want is target level suspend in
the mid layer. While the mid-layer does not have a target representation
equal to the lun representation (scsi_device) you get some target linkage
between the scsi_devs using same_target_siblings.

Just pass in the scsi_device as you where doing (maybe update the
function names to match the target suspend). Inside the function use a
list_for_each_entry over same_target_siblings to set the scsi_device
state to suspend. Then use a single timeout timer for each target.

If we want to have full symmetric interfaces to the LLDD for suspending
a target "siblings" or a lun "scsi_device" with protection for
calling already suspend objects we may need a little more locking around
the state changes or some other exclusion method.

It would be nice some day to have real target representation, but this
pseudo support we have now may address your needs.

I am little sleepy so maybe this idea is not as good as it seems
now as it would after a little sleep. YMMV

-andmike
--
Michael Anderson
andmike@us.ibm.com


  reply	other threads:[~2004-08-20  8:57 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-19 18:24 [PATCH] updated: suspending I/Os to a device James.Smart
2004-08-20  8:55 ` Mike Anderson [this message]
2004-08-20 13:48   ` Luben Tuikov
  -- strict thread matches above, loose matches on Subject: below --
2004-09-01 19:30 James.Smart
2004-09-01 19:44 ` Christoph Hellwig
2004-08-20 13:24 James.Smart
2004-08-19 17:24 James.Smart
2004-08-19 17:42 ` James Bottomley
2004-08-10 21:00 James.Smart
2004-08-11 22:11 ` Christoph Hellwig
2004-08-10 20:35 James.Smart
2004-08-10 20:50 ` Christoph Hellwig
2004-08-17  4:39 ` James Bottomley

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=20040820085516.GA5582@us.ibm.com \
    --to=andmike@us.ibm.com \
    --cc=James.Bottomley@SteelEye.com \
    --cc=James.Smart@Emulex.Com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.