Re: [PATCH 6/8] skd: use blk_mq_queue_tag_busy_iter

From: Bart Van Assche
Date: Mon Mar 18 2019 - 13:20:40 EST


On Fri, 2019-03-15 at 16:57 +-0800, Jianchao Wang wrote:
+AD4 blk+AF8-mq+AF8-tagset+AF8-busy+AF8-iter is not safe that it could get stale request
+AD4 in tags-+AD4-rqs+AFsAXQ. Use blk+AF8-mq+AF8-queue+AF8-tag+AF8-busy+AF8-iter here.
+AD4
+AD4 Signed-off-by: Jianchao Wang +ADw-jianchao.w.wang+AEA-oracle.com+AD4
+AD4 ---
+AD4 drivers/block/skd+AF8-main.c +AHw 4 ++1filechanged2insertions(), 2 deletions(-)
+AD4
+AD4 diff --git a/drivers/block/skd+AF8-main.c b/drivers/block/skd+AF8-main.c
+AD4 index ab893a7..60c34ff 100644
+AD4 --- a/drivers/block/skd+AF8-main.c
+AD4 diff --git a/drivers/block/skd+AF8-main.c b/drivers/block/skd+AF8-main.c
+AD4 index ab893a7..60c34ff 100644
+AD4 --- a/drivers/block/skd+AF8-main.c
+AD4 +-+-+- b/drivers/block/skd+AF8-main.c
+AD4 +AEAAQA -395,7 +-395,7 +AEAAQA static int skd+AF8-in+AF8-flight(struct skd+AF8-device +ACo-skdev)
+AD4 +AHs
+AD4 int count +AD0 0+ADs
+AD4
+AD4 - blk+AF8-mq+AF8-tagset+AF8-busy+AF8-iter(+ACY-skdev-+AD4-tag+AF8-set, skd+AF8-inc+AF8-in+AF8-flight, +ACY-count)+ADs
+AD4 +- blk+AF8-mq+AF8-queue+AF8-tag+AF8-busy+AF8-iter(skdev-+AD4-queue, skd+AF8-inc+AF8-in+AF8-flight, +ACY-count, true)+ADs
+AD4
+AD4 return count+ADs
+AD4 +AH0

Hi Jianchao,

If you have a look at the skd+AF8-in+AF8-flight() callers you will see that the above
change is not necessary.

+AD4 +AEAAQA -1916,7 +-1916,7 +AEAAQA static bool skd+AF8-recover+AF8-request(struct request +ACo-req, void +ACo-data, bool reserved)
+AD4
+AD4 static void skd+AF8-recover+AF8-requests(struct skd+AF8-device +ACo-skdev)
+AD4 +AHs
+AD4 - blk+AF8-mq+AF8-tagset+AF8-busy+AF8-iter(+ACY-skdev-+AD4-tag+AF8-set, skd+AF8-recover+AF8-request, skdev)+ADs
+AD4 +- blk+AF8-mq+AF8-queue+AF8-tag+AF8-busy+AF8-iter(skdev-+AD4-queue, skd+AF8-recover+AF8-request, skdev, true)+ADs
+AD4 +AH0

Same comment here. If you have a look at the callers of this function you will
see that this change is not necessary.

Thanks,

Bart.