block: revert avoid acquiring cpu hotplug lock in group_cpus_evenly#599
block: revert avoid acquiring cpu hotplug lock in group_cpus_evenly#599blktests-ci[bot] wants to merge 3 commits intolinus-master_basefrom
Conversation
|
Upstream branch: 7dff99b |
c475e20 to
14f6b99
Compare
|
Upstream branch: a75cb86 |
572f4e9 to
7d4e359
Compare
14f6b99 to
856dc37
Compare
|
Upstream branch: 4d349ee |
7d4e359 to
83ef6df
Compare
856dc37 to
40967f0
Compare
|
Upstream branch: 11439c4 |
83ef6df to
ae31a92
Compare
40967f0 to
d4e9bad
Compare
|
Upstream branch: af4e9ef |
ae31a92 to
4fc2a4a
Compare
ecd10e2 to
d0e1bed
Compare
|
Upstream branch: af4e9ef |
4fc2a4a to
6eecec1
Compare
d0e1bed to
6b51c57
Compare
|
Upstream branch: 0031c06 |
6eecec1 to
a1181d5
Compare
6b51c57 to
78036b2
Compare
|
Upstream branch: ecc64d2 |
a1181d5 to
d001c7d
Compare
78036b2 to
bbb3394
Compare
|
Upstream branch: c107785 |
d001c7d to
1caa45d
Compare
bbb3394 to
901a429
Compare
|
Upstream branch: 5ee8dbf |
1caa45d to
67b3958
Compare
901a429 to
1f19ba6
Compare
|
Upstream branch: 1f318b9 |
67b3958 to
2e5e9c9
Compare
1f19ba6 to
e79276a
Compare
|
Upstream branch: None |
2e5e9c9 to
0343ac6
Compare
e79276a to
0dd9afc
Compare
|
Upstream branch: 80234b5 |
0343ac6 to
0dd38a3
Compare
0dd9afc to
2e598ed
Compare
When the ctrl is not in LIVE state, a hardware queue can be in the INACTIVE state due to CPU hotplug offlining operations. In this case, the driver will freeze and quiesce the request queue and doesn't expect new request entering via queue_rq. Though a request will fail eventually, though shortcut it and fail it earlier. Check if a request is targeted for an inactive hardware queue and use nvme_failover_req and hand it back to the block layer. Signed-off-by: Daniel Wagner <wagi@kernel.org>
The CPU hotplug offline handler in the block layer checks for any in-flight requests on a CPU going offline. It prevents the CPU hotplug state engine from progressing as long as there are pending requests. This is done by checking for any allocated requests on the hardware context that is going offline. The driver is responsible for completing all in-flight requests. However, the driver might be performing error recovery simultaneously. Therefore, the request queue might be in a frozen or quiesced state. In this case, requests may not make progress (see blk_mq_sched_dispatch_requests for an example). Introduce an explicit handshake protocol between the driver and the block layer. This allows the driver to signal when it is safe to ignore any remaining pending requests. Signed-off-by: Daniel Wagner <wagi@kernel.org>
…pus_evenly" This reverts commit 0263f92. The reason the lock was removed was that the nvme-pci driver reset handler attempted to acquire the CPU read lock during CPU hotplug offlining (holds the CPU write lock). Consequently, the block layer offline notifier callback could not progress because in-flight requests were detected. Since then, in-flight detection has been improved, and the nvme-pci driver now explicitly updates the hctx state when it is safe to ignore detected in-flight requests. As a result, it's possible to reintroduce the CPU read lock in group_cpus_evenly. Signed-off-by: Daniel Wagner <wagi@kernel.org>
|
Upstream branch: 0257f64 |
0dd38a3 to
bd19b72
Compare
Pull request for series with
subject: block: revert avoid acquiring cpu hotplug lock in group_cpus_evenly
version: 1
url: https://patchwork.kernel.org/project/linux-block/list/?series=1058417