summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/parallel-perf.py
diff options
context:
space:
mode:
authorJunxiao Bi <junxiao.bi@oracle.com>2017-07-20 09:26:21 +0800
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2017-07-25 11:30:59 -0400
commit4b422cb99836de3d261faec20a0329385bdec43d (patch)
treebefe906fd623d221f2ca529f7350d6d41e698b93 /tools/perf/scripts/python/parallel-perf.py
parent76451d79bde6bed17e113f057e58e1fa5fb79e78 (diff)
downloadkernel-4b422cb99836de3d261faec20a0329385bdec43d.tar.gz
xen-blkfront: fix mq start/stop race
When ring buf full, hw queue will be stopped. While blkif interrupt consume request and make free space in ring buf, hw queue will be started again. But since start queue is protected by spin lock while stop not, that will cause a race. interrupt: process: blkif_interrupt() blkif_queue_rq() kick_pending_request_queues_locked() blk_mq_start_stopped_hw_queues() clear_bit(BLK_MQ_S_STOPPED, &hctx->state) blk_mq_stop_hw_queue(hctx) blk_mq_run_hw_queue(hctx, async) If ring buf is made empty in this case, interrupt will never come, then the hw queue will be stopped forever, all processes waiting for the pending io in the queue will hung. Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com> Reviewed-by: Ankur Arora <ankur.a.arora@oracle.com> Acked-by: Roger Pau Monné <roger.pau@citrix.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'tools/perf/scripts/python/parallel-perf.py')
0 files changed, 0 insertions, 0 deletions
4-05 10:56:34 +0200'>2016-04-05mac80211: synchronize driver rx queues before removing a stationSara Sharon 2016-01-14mac80211: pass block ack session timeout to to driverSara Sharon 2015-11-03mac80211: document sleep requirements for channel context opsChaitanya T K 2015-11-03mac80211: call drv_stop only if driver is startedEliad Peller 2015-09-29mac80211: Deinline drv_get/set/reset_tsf()Denys Vlasenko 2015-09-29mac80211: Deinline drv_ampdu_action()Denys Vlasenko 2015-09-29mac80211: Deinline drv_switch_vif_chanctx()Denys Vlasenko 2015-09-29mac80211: Deinline drv_add/remove/change_interface()Denys Vlasenko 2015-09-29mac80211: Deinline drv_sta_rc_update()Denys Vlasenko 2015-09-29mac80211: Deinline drv_conf_tx()Denys Vlasenko 2015-09-22mac80211: allow to transmit A-MSDU within A-MPDUEmmanuel Grumbach 2015-09-22mac80211: introduce per vif frame registration APIAndrei Otcheretianski 2015-07-17mac80211: deinline drv_sta_stateDenys Vlasenko 2015-06-10mac80211: convert HW flags to unsigned long bitmapJohannes Berg 2015-05-06mac80211: extend get_tkip_seq to all keysJohannes Berg 2015-04-01mac80211: add an intermediate software queue implementationFelix Fietkau 2015-03-30mac80211: convert rssi_callback() to event_callback()Emmanuel Grumbach