Re: [patch ide-dev 8/9] make ide_task_ioctl() use REQ_DRIVE_TASKFILE

From: Bartlomiej Zolnierkiewicz
Date: Wed Mar 02 2005 - 05:11:01 EST


On Wed, 02 Mar 2005 01:08:56 -0500, Jeff Garzik <jgarzik@xxxxxxxxx> wrote:
> Bartlomiej Zolnierkiewicz wrote:
> > Yes but it seems that you've assumed that ioctl == flagged taskfile
> > and fs/internal == normal taskfile which is _not_ what I aim for.
> >
> > I want fully-flagged taskfile handling like flagged_taskfile() and "hot path"
> > simpler taskfile handling like do_rw_taskfile() (at least for now - we can
> > remove "hot path" later) where both can be used for fs/internal/ioctl requests
> > (depending on the flags).
>
> There is no effective difference in performance between
>
> writeb()
> writeb()
> writeb()
> writeb()
>
> and
>
> if (bit 1)
> writeb()
> if (bit 2)
> writeb()
> if (bit 3)
> writeb()
> if (bit 4)
> writeb()
>
> The cost of a repeated bit test on the same unsigned long is _zero_.
> It's already in L1 cache. The I/Os are slow, and adding bit tests will

certainly it is not _zero_ ;-)

I agree that it is negligible compared to the cost of I/O

> not measurably decrease performance. (this is the reason why I do not
> object to using ioread32() and iowrite32()... it just adds a simple test)
>
> Plus, it is better to have a single path for all taskfiles, to ensure
> that the path is well-tested.
>
> libata's ->tf_load() and ->tf_read() hooks should be updated to use the
> more fine-grained flags that Tejun is proposing.
>
> Note that on SATA, this is largely irrelevant. The functions
> ata_tf_read() and ata_tf_load() should be updated for flagged taskfiles,
> because these will be used with PATA drivers.
>
> The hooks implemented in individual SATA drivers will not be updated.
> The reason is that SATA transmits an entire copy of the taskfile to/from
> the device all at once, in the form of a Frame Information Structure
> (FIS) -- essentially a SATA packet.

agreed

Tejun, one-path approach for IDE driver is fine with me
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/