Re: [BK PATCHES] add ata scsi driver

James Bottomley
2003-05-27T14:07:27Z

On Tue, 2003-05-27 at 02:54, Jens Axboe wrote:
> James, speaking of queue localities and tcq... Doug mentioned some time
> ago that aic7xxx dishes out tags numbers from a hba pool which makes it
> impossible to support with out current block layer queueing code. Maybe
> it we associate the blk_queue_tag structure with a bunch of queues
> instead of having a 1:1 mapping it could work.

Yes, A large number of devices (not just the aic7xxx) have a single
issue queue for all outgoing requests (this is the reason for the
can_queue limit in the host template).

If the issue queue is < 256 slots, it makes a lot of sense to use global
tag numbers instead of device local ones, since then you can simply map
the returning tag number to an index in the issue queue and not bother
having to keep a hash table of <pun, lun, tag> to look it up in.

Even drivers which have larger or variable size issue queues (here the
qlogic ones spring immediately to mind) often have a virtual index
number attached to their commands (which, this time is 16 bits) which
they'd like to use as a unique offset into the issue queue. Obviously,
they face exactly the same challenges as tags and they'd like a similar
solution.

A global structure for a bunch of queues would probably be the most
useful way forwards.

James