* [PATCHSET] implement and use port_task
@ 2006-03-05 6:28 Tejun Heo
2006-03-07 6:13 ` Albert Lee
0 siblings, 1 reply; 6+ messages in thread
From: Tejun Heo @ 2006-03-05 6:28 UTC (permalink / raw)
To: jgarzik, albertcc, linux-ide, htejun
Hello, Jeff and Albert.
This patchset implements port_task and replace pio_task and
packet_task with it. port_task isn't very different from pio_task or
packet_task - it's straight forward generalization. The port_task is
a per-port task avaliable to low level drivers which is managed by
libata core layer.
Differences from pio/packet task.
* Not limited to PIO HSM implementation. Other drivers can use it.
* Synchronization against EH core layer is done within libata core
layer, not in PIO HSM implementation (ata_qc_timeout()).
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCHSET] implement and use port_task
@ 2006-03-05 6:29 Tejun Heo
0 siblings, 0 replies; 6+ messages in thread
From: Tejun Heo @ 2006-03-05 6:29 UTC (permalink / raw)
To: jgarzik, albertcc, linux-ide, htejun
Hello, Jeff and Albert.
This patchset implements port_task and replace pio_task and
packet_task with it. port_task isn't very different from pio_task or
packet_task - it's straight forward generalization. The port_task is
a per-port task avaliable to low level drivers which is managed by
libata core layer.
Differences from pio/packet task.
* Not limited to PIO HSM implementation. Other drivers can use it.
* Synchronization against EH core layer is done within libata core
layer, not in PIO HSM implementation (ata_qc_timeout()).
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCHSET] implement and use port_task
2006-03-05 6:28 [PATCHSET] implement and use port_task Tejun Heo
@ 2006-03-07 6:13 ` Albert Lee
2006-03-07 7:01 ` Tejun Heo
2006-03-07 7:21 ` Jeff Garzik
0 siblings, 2 replies; 6+ messages in thread
From: Albert Lee @ 2006-03-07 6:13 UTC (permalink / raw)
To: jgarzik; +Cc: Tejun Heo, linux-ide
Hi Jeff,
>
> This patchset implements port_task and replace pio_task and
> packet_task with it. port_task isn't very different from pio_task or
> packet_task - it's straight forward generalization. The port_task is
> a per-port task avaliable to low level drivers which is managed by
> libata core layer.
>
> Differences from pio/packet task.
>
> * Not limited to PIO HSM implementation. Other drivers can use it.
>
> * Synchronization against EH core layer is done within libata core
> layer, not in PIO HSM implementation (ata_qc_timeout()).
>
> Thanks.
>
> --
> tejun
>
Something related to the PIO HSM.
After the task renaming by this patchset, the task name is changed from pio_task to port_task.
Should we add polling DMA support to the polling HSM?
It could make the polling HSM more complete.
Polling DMA does no performance gain. However, DMA has crc check,
so it won't be worse than PIO when irq is not working.
Albert
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCHSET] implement and use port_task
2006-03-07 6:13 ` Albert Lee
@ 2006-03-07 7:01 ` Tejun Heo
2006-03-07 7:21 ` Jeff Garzik
1 sibling, 0 replies; 6+ messages in thread
From: Tejun Heo @ 2006-03-07 7:01 UTC (permalink / raw)
To: albertl; +Cc: jgarzik, linux-ide
Albert Lee wrote:
> Hi Jeff,
>
>>This patchset implements port_task and replace pio_task and
>>packet_task with it. port_task isn't very different from pio_task or
>>packet_task - it's straight forward generalization. The port_task is
>>a per-port task avaliable to low level drivers which is managed by
>>libata core layer.
>>
>>Differences from pio/packet task.
>>
>>* Not limited to PIO HSM implementation. Other drivers can use it.
>>
>>* Synchronization against EH core layer is done within libata core
>> layer, not in PIO HSM implementation (ata_qc_timeout()).
>>
>>Thanks.
>>
>>--
>>tejun
>>
>
>
> Something related to the PIO HSM.
> After the task renaming by this patchset, the task name is changed from pio_task to port_task.
> Should we add polling DMA support to the polling HSM?
> It could make the polling HSM more complete.
>
> Polling DMA does no performance gain. However, DMA has crc check,
> so it won't be worse than PIO when irq is not working.
>
Hmmm... Does irq-pio branch still have polling pio support? I hope we
can implement polling without impacting normal code path in some generic
way (pseudo periodic interrupts and each interrupt handler returning
without doing any harm if nothing has happened should work). I don't
think complicating HSM with DMA-by-polling is a good idea. It's not like
all low level drivers can share single implementation of HSM.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCHSET] implement and use port_task
2006-03-07 6:13 ` Albert Lee
2006-03-07 7:01 ` Tejun Heo
@ 2006-03-07 7:21 ` Jeff Garzik
2006-03-09 8:39 ` Albert Lee
1 sibling, 1 reply; 6+ messages in thread
From: Jeff Garzik @ 2006-03-07 7:21 UTC (permalink / raw)
To: albertl; +Cc: Tejun Heo, linux-ide
Albert Lee wrote:
> Something related to the PIO HSM.
> After the task renaming by this patchset, the task name is changed from pio_task to port_task.
> Should we add polling DMA support to the polling HSM?
> It could make the polling HSM more complete.
>
> Polling DMA does no performance gain. However, DMA has crc check,
> so it won't be worse than PIO when irq is not working.
Polling DMA support with nIEN=1 is theoretically invalid. You are not
supposed to touch the ATA shadow register set until after receiving an
irq event.
On chipsets where nIEN=0 and the chip's IntrMask is also zero, its doable.
I'm satisfied with simply never doing polling DMA, and change our mind
only if a critical need arises.
Jeff
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCHSET] implement and use port_task
2006-03-07 7:21 ` Jeff Garzik
@ 2006-03-09 8:39 ` Albert Lee
0 siblings, 0 replies; 6+ messages in thread
From: Albert Lee @ 2006-03-09 8:39 UTC (permalink / raw)
To: Jeff Garzik; +Cc: albertl, Tejun Heo, linux-ide
Jeff Garzik wrote:
>
>
> Polling DMA support with nIEN=1 is theoretically invalid. You are not
> supposed to touch the ATA shadow register set until after receiving an
> irq event.
>
> On chipsets where nIEN=0 and the chip's IntrMask is also zero, its doable.
>
> I'm satisfied with simply never doing polling DMA, and change our mind
> only if a critical need arises.
>
>
Understand. After checking the code, polling DMA looks bad idea.
Thanks for the advice.
BTW, Tejun's proposal of pseudo periodic interrupts reminds me
of some patches to integrate the polling pio with irq-pio.
Will submit the patches for your review later.
Albert
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2006-03-09 8:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-05 6:28 [PATCHSET] implement and use port_task Tejun Heo
2006-03-07 6:13 ` Albert Lee
2006-03-07 7:01 ` Tejun Heo
2006-03-07 7:21 ` Jeff Garzik
2006-03-09 8:39 ` Albert Lee
-- strict thread matches above, loose matches on Subject: below --
2006-03-05 6:29 Tejun Heo
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).