From: Tejun Heo <htejun@gmail.com>
To: Lukasz Kosewski <lkosewsk@nit.ca>
Cc: linux-scsi@vger.kernel.org, jgarzik@pobox.com
Subject: Re: SCSI layer a stumbling block for true SATA hotplug
Date: Sun, 17 Jul 2005 10:53:10 +0900 [thread overview]
Message-ID: <42D9BA06.90601@gmail.com> (raw)
In-Reply-To: <42D994C3.8090702@nit.ca>
Hi, Lukasz.
Lukasz Kosewski wrote:
> Hello all,
>
> I'm currently working on a project to get a true disk-hotplug subsystem
> working in libata, experimenting with Promise SATA150 Tx2 Plus and
> SATAII150 Tx2 Plus controllers.
>
> I am very near a 'beta' release of my patches to this mailing list,
> however, I have hit a stumbling block in the SCSI layer, which I'm
> hoping someone can give me good suggestions for resolving.
>
> The situation is as follows:
> -> I unplug a disk from my controller.
> -> An interrupt fires off telling me I've unplugged a disk.
> -> I acknowledge the interrupt, add an entry to my workqueue to handle
> the bottom half.
> -> Bottom half kicks in, I need to call "scsi_remove_device" in order to
> purge the information about this disk from the system.
>
> HOWEVER, "scsi_remove_device", through a chain of functions, ends up
> calling sd_shutdown, which attempts to synchronize the SCSI cache for my
> disk. Well... bad plan, I've just unplugged the disk, it's gone.
>
> So the system gets dazed and confused and locks up, timing out waiting
> for the disk which isn't there.
>
> If anyone has a suggestion as to a good (ie. acceptable by all parties)
> solution to this problem, I'd love to hear it.
AFAIK, lldd (libata in this case) should be ready to handle/fail
requests until the removal is complete. As device hot-unplugging can be
initiated from different layers, upper layer currently depends on lldd
to handle such cases. On detecting device removal, mark the device gone
inside libata and fail all commands afterward until actual removal is
complete. That should do and, IIRC, what other drivers do.
--
tejun
prev parent reply other threads:[~2005-07-17 1:53 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-16 23:14 SCSI layer a stumbling block for true SATA hotplug Lukasz Kosewski
2005-07-17 0:01 ` Joe Scsi
2005-07-17 1:53 ` Tejun Heo [this message]
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=42D9BA06.90601@gmail.com \
--to=htejun@gmail.com \
--cc=jgarzik@pobox.com \
--cc=linux-scsi@vger.kernel.org \
--cc=lkosewsk@nit.ca \
/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.