84 lines
2.5 KiB
Diff
84 lines
2.5 KiB
Diff
From ffad188bfa63fa513c05850bf64eebe5e519c14d Mon Sep 17 00:00:00 2001
|
|
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
|
|
Date: Fri, 20 Sep 2019 17:50:54 -0400
|
|
Subject: [PATCH 287/328] revert-block
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.106-rt46.tar.xz
|
|
|
|
Revert swork version of: block: blk-mq: move blk_queue_usage_counter_release() into process context
|
|
|
|
In order to switch to upstream, we need to revert the swork code.
|
|
|
|
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
|
---
|
|
block/blk-core.c | 14 +-------------
|
|
include/linux/blkdev.h | 2 --
|
|
2 files changed, 1 insertion(+), 15 deletions(-)
|
|
|
|
diff --git a/block/blk-core.c b/block/blk-core.c
|
|
index 13bf37156bb0..4860cd26cd5a 100644
|
|
--- a/block/blk-core.c
|
|
+++ b/block/blk-core.c
|
|
@@ -973,21 +973,12 @@ void blk_queue_exit(struct request_queue *q)
|
|
percpu_ref_put(&q->q_usage_counter);
|
|
}
|
|
|
|
-static void blk_queue_usage_counter_release_swork(struct swork_event *sev)
|
|
-{
|
|
- struct request_queue *q =
|
|
- container_of(sev, struct request_queue, mq_pcpu_wake);
|
|
-
|
|
- wake_up_all(&q->mq_freeze_wq);
|
|
-}
|
|
-
|
|
static void blk_queue_usage_counter_release(struct percpu_ref *ref)
|
|
{
|
|
struct request_queue *q =
|
|
container_of(ref, struct request_queue, q_usage_counter);
|
|
|
|
- if (wq_has_sleeper(&q->mq_freeze_wq))
|
|
- swork_queue(&q->mq_pcpu_wake);
|
|
+ wake_up_all(&q->mq_freeze_wq);
|
|
}
|
|
|
|
static void blk_rq_timed_out_timer(struct timer_list *t)
|
|
@@ -1084,7 +1075,6 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,
|
|
queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q);
|
|
|
|
init_waitqueue_head(&q->mq_freeze_wq);
|
|
- INIT_SWORK(&q->mq_pcpu_wake, blk_queue_usage_counter_release_swork);
|
|
|
|
/*
|
|
* Init percpu_ref in atomic mode so that it's faster to shutdown.
|
|
@@ -3974,8 +3964,6 @@ int __init blk_dev_init(void)
|
|
if (!kblockd_workqueue)
|
|
panic("Failed to create kblockd\n");
|
|
|
|
- BUG_ON(swork_get());
|
|
-
|
|
request_cachep = kmem_cache_create("blkdev_requests",
|
|
sizeof(struct request), 0, SLAB_PANIC, NULL);
|
|
|
|
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
|
|
index 2f3b2e5196eb..111ab4209797 100644
|
|
--- a/include/linux/blkdev.h
|
|
+++ b/include/linux/blkdev.h
|
|
@@ -27,7 +27,6 @@
|
|
#include <linux/percpu-refcount.h>
|
|
#include <linux/scatterlist.h>
|
|
#include <linux/blkzoned.h>
|
|
-#include <linux/swork.h>
|
|
|
|
struct module;
|
|
struct scsi_ioctl_command;
|
|
@@ -656,7 +655,6 @@ struct request_queue {
|
|
#endif
|
|
struct rcu_head rcu_head;
|
|
wait_queue_head_t mq_freeze_wq;
|
|
- struct swork_event mq_pcpu_wake;
|
|
struct percpu_ref q_usage_counter;
|
|
struct list_head all_q_node;
|
|
|
|
--
|
|
2.25.1
|
|
|