On 11/4/19 4:57 PM, Christoph Hellwig wrote:
On Mon, Nov 04, 2019 at 04:42:23PM -0800, Bart Van Assche wrote:
Reserved tags are numerically lower than non-reserved tags. Compensate the
change caused by reserving tags by subtracting the number of reserved tags
from the tag number assigned by the block layer.
Why would you do that? Do we really care about the exact tag number?
If so would it make sense to reverse in the block layer how we allocate
private vs normal tags?
Also this change should probably merged into the patch that actually
starts using the private tags by actually allocating requests using
them.
Hi Christoph,
The UFS driver writes the actual tags into doorbell registers. There are
two such doorbell registers: one for regular commands and one for task
management functions. Both doorbell registers are bitmasks that start
from bit zero. So I don't see how to avoid this kind of tag conversions?
From the UFS driver, for regular commands:
ufshcd_writel(hba, 1 << task_tag, REG_UTP_TRANSFER_REQ_DOOR_BELL);
And for TMFs:
ufshcd_writel(hba, 1 << free_slot, REG_UTP_TASK_REQ_DOOR_BELL);
Thanks,
Bart.