From: Jeff Garzik <jgarzik@pobox.com>
To: Tejun Heo <htejun@gmail.com>
Cc: linux-ide@vger.kernel.org
Subject: Re: [git-patches] EH, irq-pio merge and NCQ patches
Date: Mon, 15 May 2006 22:25:04 -0400 [thread overview]
Message-ID: <44693800.80504@pobox.com> (raw)
In-Reply-To: <446934BE.8090804@gmail.com>
Tejun Heo wrote:
> Jeff Garzik wrote:
>> Tejun Heo wrote:
>>> I didn't add DMA engine stopping to ata_bmdma_freeze() in this series.
>>> When BMDMA engine is turned off, all status bits go too. However, the
>>> status is used by BMDMA EH to report and to recognize host bus error
>>> reprsented as timeout.
>>>
>>> To make all of them work, the BMDMA status needs to be stored in
>>> ata_bmdma_freeze() and used in EH, which is currently a bit difficult
>>> to implement for generic BMDMA. I think we can resolve this later.
>>
>> Agree re storing BMDMA status. The very next operation needs to be
>> DMA-stop, though. Otherwise shadow register block isn't accessible.
>> And you must still check BMDMA status -after- stopping DMA, too (that
>> doesn't invalidate your logic quoted above, of course).
>
> I see. I think this can be done by making all BMDMA related stuff into
> a layer between highlevel libata and BMDMA LLDDs. We can move all IO
> ops into that layer and newer controllers like ahci, sata_sil24 and
> sata_mv don't have to care about them. Have yet to think about how to
> do it in simple way though, such that changes to BMDMA LLDDs are minimal.
In an ideal world, drivers would register themselves as BMDMA drivers
rather than libata drivers. Move all the BMDMA hooks to a separate
structure, leaving only the high level ->qc_issue() interface in
ata_port_operations.
>> BTW, it would be nice if you would start with branch #sii-irq when you
>> are updating the sata_sil interrupt handling path.
>
> I certainly can, but I'm not sure it's a good idea to do it. Most
> likely, it will end up in another rewriting of the rewritten irq handler
> (commit-wise, it will be merge-sii-irq then rewrite sii-irq). The new
> one in hp-LLDD-prep uses BMDMA2 to cut down on IO access and also makes
> use of the fact that sata_sil uses ATA_DMA_INTR bit to indicate IRQ
> pending even when non-DMA command is in progress, so the whole structure
> is somewhat different from the one in sii-irq.
OK. I'll drop my branch then.
> > And eventually we want to push #sii-lbt too.
>
> Yeap, I looked at that one, too. But, IIRC, the test result wasn't too
> positive. Am I remembering correctly?
My test results were quite positive :) At least one negative report on
3114 IIRC.
Jeff
prev parent reply other threads:[~2006-05-16 2:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-15 12:08 [git-patches] EH, irq-pio merge and NCQ patches Tejun Heo
2006-05-15 12:11 ` Tejun Heo
2006-05-15 15:39 ` Jeff Garzik
2006-05-16 2:11 ` Tejun Heo
2006-05-16 2:25 ` Jeff Garzik [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=44693800.80504@pobox.com \
--to=jgarzik@pobox.com \
--cc=htejun@gmail.com \
--cc=linux-ide@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;
as well as URLs for NNTP newsgroup(s).