* [git-patches] EH, irq-pio merge and NCQ patches
@ 2006-05-15 12:08 Tejun Heo
2006-05-15 12:11 ` Tejun Heo
2006-05-15 15:39 ` Jeff Garzik
0 siblings, 2 replies; 5+ messages in thread
From: Tejun Heo @ 2006-05-15 12:08 UTC (permalink / raw)
To: Jeff Garzik, linux-ide
Hello, Jeff.
This is the updated git-patches of previously posted five
patchsets[1]. Changes are
* SCSI-implement-host_eh_scheduled patch updated as discussed.
* A new patch, which renames ata_down_sata_spd_limit() and friends to
sata_*(), is added to prep patchset.
* ata_scr_*() renamed to sata_scr_*()
* ehc->flags has been moved to ehi->flags so that it can also be used
to pass flags from IRQ handler to EH.
* Spurious ata_dev_init() prototype killed from ering patch.
* ata_ering is changed to include #ATA_ERING_SIZE predefined ering
entries. As this makes add-dev-ering patch trivial, the patch is
collapsed into implement-ering.
* sata_sil EH now directly calls ata_bmdma_irq_clear() instead of
calling ops->irq_clear().
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.
The series can be browsed at the following URL.
http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=for-jeff
If you're satisfied with the updates, please pull from.
git://htj.dyndns.org/libata-tj for-jeff
The tree is tagged with the following.
fj-prep
fj-eh-fw
fj-eh
fj-merge-irq-pio
fj-ncq
Thanks.
[1] http://article.gmane.org/gmane.linux.ide/9959
[2] http://article.gmane.org/gmane.linux.ide/9984
[3] http://article.gmane.org/gmane.linux.ide/9995
[4] http://article.gmane.org/gmane.linux.ide/10005
[5] http://article.gmane.org/gmane.linux.ide/10011
--
tejun
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [git-patches] EH, irq-pio merge and NCQ patches
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
1 sibling, 0 replies; 5+ messages in thread
From: Tejun Heo @ 2006-05-15 12:11 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-ide
Tejun Heo wrote:
> Hello, Jeff.
>
> This is the updated git-patches of previously posted five
> patchsets[1]. Changes are
>
> * SCSI-implement-host_eh_scheduled patch updated as discussed.
>
> * A new patch, which renames ata_down_sata_spd_limit() and friends to
> sata_*(), is added to prep patchset.
>
> * ata_scr_*() renamed to sata_scr_*()
>
> * ehc->flags has been moved to ehi->flags so that it can also be used
> to pass flags from IRQ handler to EH.
>
> * Spurious ata_dev_init() prototype killed from ering patch.
>
> * ata_ering is changed to include #ATA_ERING_SIZE predefined ering
> entries. As this makes add-dev-ering patch trivial, the patch is
> collapsed into implement-ering.
>
> * sata_sil EH now directly calls ata_bmdma_irq_clear() instead of
> calling ops->irq_clear().
I forgot one.
* AHCI now has proper IRQ-mask manipulating freeze/thaw().
--
tejun
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [git-patches] EH, irq-pio merge and NCQ patches
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
1 sibling, 1 reply; 5+ messages in thread
From: Jeff Garzik @ 2006-05-15 15:39 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-ide
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).
> The series can be browsed at the following URL.
>
> http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=for-jeff
>
> If you're satisfied with the updates, please pull from.
>
> git://htj.dyndns.org/libata-tj for-jeff
Pulled into #upstream and other branches, and pushed to kernel.org.
Please check and make sure everything looks OK, after kernel.org
finishes mirroring to the outside world.
Thanks.
BTW, it would be nice if you would start with branch #sii-irq when you
are updating the sata_sil interrupt handling path. And eventually we
want to push #sii-lbt too.
Jeff
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [git-patches] EH, irq-pio merge and NCQ patches
2006-05-15 15:39 ` Jeff Garzik
@ 2006-05-16 2:11 ` Tejun Heo
2006-05-16 2:25 ` Jeff Garzik
0 siblings, 1 reply; 5+ messages in thread
From: Tejun Heo @ 2006-05-16 2:11 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-ide
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.
> Pulled into #upstream and other branches, and pushed to kernel.org.
> Please check and make sure everything looks OK, after kernel.org
> finishes mirroring to the outside world.
I glanced over them and diffed with my own tree. All look good & dandy.
> 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.
> 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?
--
tejun
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [git-patches] EH, irq-pio merge and NCQ patches
2006-05-16 2:11 ` Tejun Heo
@ 2006-05-16 2:25 ` Jeff Garzik
0 siblings, 0 replies; 5+ messages in thread
From: Jeff Garzik @ 2006-05-16 2:25 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-ide
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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-05-16 2:25 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 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).