linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Mark Lord <liml@rtr.ca>
Cc: IDE/ATA development list <linux-ide@vger.kernel.org>,
	Saeed Bishara <saeed@marvell.com>,
	Jeff Garzik <jgarzik@pobox.com>
Subject: Re: new ata_port_operations for .pmp_{read,write} ?
Date: Tue, 26 Feb 2008 08:44:41 +0900	[thread overview]
Message-ID: <47C352E9.4060107@gmail.com> (raw)
In-Reply-To: <47C2F308.1080602@rtr.ca>

Hello, Mark.

Mark Lord wrote:
> MMmm.. maybe the "vendor unique FIS" mechanism of the chipset
> can save the scenario here.  It would seem to be a reasonable
> way to direct a FIS (anything up to 8KB) at a specific pmp,
> without changing the "default" pmp on the channel.
> 
> I can have qc_issue use that mechanism for anything destined
> for pmp==15.  If it works.  The Marvell proprietary driver
> has some kludgey status polling wrapped around their own use of it.
> 
> One of the chip errata apparently requires this anyway for doing
> the READ_LOG_EXT commands after a device error, so perhaps it will
> work out to be useful in more ways.

Hmmm...

> Speaking of which.. I would like to sort out the "freeze" stuff,
> so that the sata_mv EH doesn't lock out the PMP commands as it
> does today.
> 
> Can you recap what a LLD should be doing in the presence of a PM
> for EH purposes?  Eg. media error on a PMP drive, so what core
> ATA functions should the sata_mv EH interrupt handler be calling,
> and in what sequence.. so that the libata-pmp/eh code can still
> succeed in it's queries to the PM?

libata doesn't really put much restrictions on what a LLD should do on
entering EH and if the controller's behavior is predictable, there's no
reason to freeze the port.  If the problem is that the DMA engine isn't
usable after PMP error but it's known that the controller isn't gonna
cause irq storm, no need to freeze.  The only command EH issues before
resetting which can use DMA protocol is READ_LOG_EXT.  Maybe there needs
to be a way to force PIO protocol for READ_LOG_EXT.  Other than that, if
no-data and PIO-only commands work fine, EH autopsy should work fine.

> Like I noted before, sata_mv will need to eventually hard reset
> the channel regardless, but it does seem permitted to use PIO
> or vendor-unique-FIS PIO (with polling for either) in the interim.

Just set ATA_EH_HARDRESET (which will soon become ATA_EH_RESET with
prefer-COMRESET patchset) from the interrupt handler before requesting EH.

Thanks.

-- 
tejun

  reply	other threads:[~2008-02-25 23:44 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-06 21:56 only one drive in a port multiplier system is being recognized Greg Hennessy
2007-11-12  2:58 ` Tejun Heo
     [not found]   ` <4738827D.9060405@pobox.com>
2007-11-13  1:09     ` What's needed for PMP support? Tejun Heo
2008-02-20 19:03       ` Mark Lord
2008-02-21  3:39         ` Tejun Heo
2008-02-21 15:07           ` Mark Lord
2008-02-21 20:52             ` [PATCH] libata-pmp: clear hob for pmp register accesses Mark Lord
2008-02-21 21:51               ` saeed bishara
2008-02-22  1:40               ` Tejun Heo
2008-02-24  5:29               ` Jeff Garzik
2008-02-22  0:31         ` What's needed for PMP support? Mark Lord
2008-02-22  0:32           ` Mark Lord
2008-02-22  1:57             ` Tejun Heo
2008-02-22  2:04               ` Mark Lord
2008-02-22  2:12                 ` Tejun Heo
2008-02-22  2:25                   ` Mark Lord
2008-02-22  2:27                     ` Mark Lord
2008-02-22  3:52                       ` Mark Lord
2008-02-22  4:22                         ` new ata_port_operations for .pmp_{read,write} ? Mark Lord
2008-02-22 14:23                           ` Mark Lord
2008-02-22 14:28                             ` Mark Lord
2008-02-23  0:38                               ` Mark Lord
2008-02-23  2:49                                 ` Tejun Heo
2008-02-23  2:43                             ` Tejun Heo
2008-02-23  2:59                               ` Jeff Garzik
2008-02-23  5:15                             ` Mark Lord
2008-02-24  7:03                               ` Tejun Heo
2008-02-24  7:14                                 ` Jeff Garzik
2008-02-25  4:34                                   ` Mark Lord
2008-02-25  4:46                                     ` Jeff Garzik
2008-02-25  4:31                                 ` Mark Lord
2008-02-25  4:49                                 ` Mark Lord
2008-02-25  4:56                                   ` Jeff Garzik
2008-02-25  5:20                                   ` Tejun Heo
2008-02-25 16:55                                     ` Mark Lord
2008-02-25 23:44                                       ` Tejun Heo [this message]
2008-02-26  0:12                                         ` Mark Lord
2008-02-26  2:01                                           ` Tejun Heo
2008-02-22  9:57             ` What's needed for PMP support? Alan Cox

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=47C352E9.4060107@gmail.com \
    --to=htejun@gmail.com \
    --cc=jgarzik@pobox.com \
    --cc=liml@rtr.ca \
    --cc=linux-ide@vger.kernel.org \
    --cc=saeed@marvell.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).