linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: "Владимир Дашевский" <vladimir.dashevsky@gmail.com>
Cc: Jeff Garzik <jgarzik@pobox.com>, linux-ide@vger.kernel.org
Subject: Re: hot plug on ICH9 with AHCI on
Date: Mon, 23 Mar 2009 00:08:46 +0900	[thread overview]
Message-ID: <49C6547E.5050005@kernel.org> (raw)
In-Reply-To: <49C63457.8040203@gmail.com>

Hello,

Владимир Дашевский wrote:
> I think you are not right here. If we are talking about EMI problems I
> can say that the strategy of many retries is worse than one read of port
> present status. EMI noise occurs at the time while software tries to
> re-establish connection with empty link because there is no link
> terminatiion. It's just like a car engine that has lost its muffler. It
> produces lots of noise. It is better to turn the link off as soon as we
> know there is no device on the port. That's why retries should last only
> until that state is reported by hardware. And I think hardware reports
> that state much faster than in 15 or even 5 seconds. In ICH9 it reports
> this just immediately.

Not all EMIs are one-shot events.  Some can span seconds.  Links don't
always come up right after failures.  Sometimes they require more than
one hardresets to get back to working order.  Link status report is
not reliable.  Sometimes they report offline for a while after certain
events.  If you know how to work around the above problems under a
second, I'm all ears but I doubt it unless it involves an additional
mechanical switch.

I don't know of a practical downside to lingering for limited amount
of time.  If you know one, please let me know.

>> If you hot unplug, how do you notify SCSI driver first?
>>   
> Well, there are some strange comments in FAQs that older ICH chips (5 to
> 8) do not fully support hot plug, while the newer ones have better
> support for this. Then there is an explanation of what is proper hotplug
> support. That explanation says of surprise-removal support. However, I
> do not mind of notifying system before a actually remove the drive. Just
> because it may take a long time to shut down drive activity and it will
> be better to indicate this explicitly to user.

If you sync and spin down the drive before hot unplugging, there's no
practical difference.  If you do a surprise hot-unplug, whatever was
on the buffer will be lost and the drive will have to do an emergency
unload.

>> The goal is being robust.  With numerous hardware combinations, that's
>> about the only way to keep things manageable.  Things don't always
>> work as described in the spec.  Again, the only down side is one or
>> more failed attempts and log about those.  Why do you care?
>>   
> It's just because one of my jobs is writing high performance embedded
> real-time software were logs are almost the only way to know what
> happens in hardware. After  several years of  such practice there is a
> habit of suspecting side effects of each stralge log line. That's whay I
> do care :-)
> I just want to understand that this softreset failure is a normal
> behavior for that particular case.

Yes, they're expected.  If you really don't like those messages, feel
free to comment them out in your tree but please stop obsessing over
the messages.  I'll be happy to improve EH behavior but you need to
come up with better reasons.

>> ahci doesn't use PCS to detect dummy ports.  It uses PORT_IMPL ahci
>> register.  If PORT_IMPL changes according to which ports are occupied
>> that's a BIOS bug.  Can you post the output of "dmidecode"?
>>   
> Yes, you were right, it was a BIOS bug. I have downloaded latest BIOS
> from the vendor's web site and now PI register allways reports all six
> ports implemented.

Great.  :-)

> Ok. So, one more question. How can I know exactly when device deletion
> has completed after sending this command? For example, consider that
> there some data in cache that needs 3 seconds to be sync-ed to disk. How
> can I know that I must wait for 3 seconds before a can actually remove
> the drive? Should I check the presence of some other filename in
> /sys/block/sdX/ or do something else?

The echo to delete node is synchronous.  It will return after the
device is completely removed but please note that "removing" in this
sense only covers the device itself.  It will flush the request queue
and spin the drive down but won't do anything about filesystems.  You
need to unmount first.  hal and desktop stuff already do the right
thing for devices marked removable.

Thanks.

-- 
tejun

  reply	other threads:[~2009-03-22 15:08 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-18 22:12 hot plug on ICH9 with AHCI on Владимир Дашевский
2009-03-20  2:04 ` Tejun Heo
2009-03-20  9:55   ` Владимир Дашевский
     [not found]     ` <49C39933.4020501@kernel.org>
2009-03-20 15:31       ` Владимир Дашевский
2009-03-22 12:51       ` Владимир Дашевский
2009-03-22 15:08         ` Tejun Heo [this message]
2009-03-22 16:07           ` Владимир Дашевский
2009-03-22 16:41             ` Tejun Heo
2009-03-22 18:26               ` Владимир Дашевский
2009-03-23  2:04                 ` Tejun Heo
2009-03-23 11:38                   ` Владимир Дашевский
2009-03-23 12:01                     ` Tejun Heo
2009-03-24  8:26                       ` Владимир Дашевский

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=49C6547E.5050005@kernel.org \
    --to=tj@kernel.org \
    --cc=jgarzik@pobox.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=vladimir.dashevsky@gmail.com \
    /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;
as well as URLs for NNTP newsgroup(s).