Re: [PATCH V4 3/7] blk-mq: quiesce queue before updating nr_hw_queues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2019-04-04 at 16:43 +-0800, Ming Lei wrote:
+AD4 diff --git a/block/blk-mq.c b/block/blk-mq.c
+AD4 index b512ba0cb359..41c12d9008b7 100644
+AD4 --- a/block/blk-mq.c
+AD4 +-+-+- b/block/blk-mq.c
+AD4 +AEAAQA -3224,8 +-3224,11 +AEAAQA static void +AF8AXw-blk+AF8-mq+AF8-update+AF8-nr+AF8-hw+AF8-queues(struct blk+AF8-mq+AF8-tag+AF8-set +ACo-set,
+AD4         if (nr+AF8-hw+AF8-queues +ADw 1 +AHwAfA nr+AF8-hw+AF8-queues +AD0APQ set-+AD4-nr+AF8-hw+AF8-queues)
+AD4                 return+ADs
+AD4  
+AD4 -       list+AF8-for+AF8-each+AF8-entry(q, +ACY-set-+AD4-tag+AF8-list, tag+AF8-set+AF8-list)
+AD4 +-       list+AF8-for+AF8-each+AF8-entry(q, +ACY-set-+AD4-tag+AF8-list, tag+AF8-set+AF8-list) +AHs
+AD4                 blk+AF8-mq+AF8-freeze+AF8-queue(q)+ADs
+AD4 +-               blk+AF8-mq+AF8-quiesce+AF8-queue(q)+ADs
+AD4 +-               blk+AF8-sync+AF8-queue(q)+ADs
+AD4 +-       +AH0
+AD4         /+ACo
+AD4          +ACo Sync with blk+AF8-mq+AF8-queue+AF8-tag+AF8-busy+AF8-iter.
+AD4          +ACo-/
+AD4 +AEAAQA -3269,8 +-3272,10 +AEAAQA static void +AF8AXw-blk+AF8-mq+AF8-update+AF8-nr+AF8-hw+AF8-queues(struct blk+AF8-mq+AF8-tag+AF8-set +ACo-set,
+AD4         list+AF8-for+AF8-each+AF8-entry(q, +ACY-set-+AD4-tag+AF8-list, tag+AF8-set+AF8-list)
+AD4                 blk+AF8-mq+AF8-elv+AF8-switch+AF8-back(+ACY-head, q)+ADs
+AD4  
+AD4 -       list+AF8-for+AF8-each+AF8-entry(q, +ACY-set-+AD4-tag+AF8-list, tag+AF8-set+AF8-list)
+AD4 +-       list+AF8-for+AF8-each+AF8-entry(q, +ACY-set-+AD4-tag+AF8-list, tag+AF8-set+AF8-list) +AHs
+AD4 +-               blk+AF8-mq+AF8-unquiesce+AF8-queue(q)+ADs
+AD4                 blk+AF8-mq+AF8-unfreeze+AF8-queue(q)+ADs
+AD4 +-       +AH0
+AD4  +AH0
+AD4  
+AD4  void blk+AF8-mq+AF8-update+AF8-nr+AF8-hw+AF8-queues(struct blk+AF8-mq+AF8-tag+AF8-set +ACo-set, int nr+AF8-hw+AF8-queues)

Are you sure this patch is sufficient? What prevents that blk+AF8-mq+AF8-run+AF8-hw+AF8-queues()
gets called after the blk+AF8-mq+AF8-quiesce() and blk+AF8-sync+AF8-queue() calls have finished
and before the queue is unfrozen?

Bart.



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux