You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
block: support different tag allocation policy
The libata tag allocation is using a round-robin policy. Next patch will make libata use block generic tag allocation, so let's add a policy to tag allocation. Currently two policies: FIFO (default) and round-robin. Cc: Jens Axboe <axboe@fb.com> Cc: Tejun Heo <tj@kernel.org> Cc: Christoph Hellwig <hch@infradead.org> Signed-off-by: Shaohua Li <shli@fb.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
@@ -402,6 +402,9 @@ struct scsi_host_template {
|
||||
*/
|
||||
unsigned char present;
|
||||
|
||||
/* If use block layer to manage tags, this is tag allocation policy */
|
||||
int tag_alloc_policy;
|
||||
|
||||
/*
|
||||
* Let the block layer assigns tags to all commands.
|
||||
*/
|
||||
|
||||
@@ -66,7 +66,8 @@ static inline int scsi_init_shared_tag_map(struct Scsi_Host *shost, int depth)
|
||||
* devices on the shared host (for libata)
|
||||
*/
|
||||
if (!shost->bqt) {
|
||||
shost->bqt = blk_init_tags(depth);
|
||||
shost->bqt = blk_init_tags(depth,
|
||||
shost->hostt->tag_alloc_policy);
|
||||
if (!shost->bqt)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user