From: Shaohua Li <shli@kernel.org>
To: linux-raid@vger.kernel.org
Cc: neilb@suse.de, axboe@kernel.dk
Subject: [patch 1/3 v3] MD: add a specific workqueue to do dispatch
Date: Wed, 13 Jun 2012 17:11:44 +0800 [thread overview]
Message-ID: <20120613091231.470357766@kernel.org> (raw)
In-Reply-To: 20120613091143.508417333@kernel.org
[-- Attachment #1: md-workqueue.patch --]
[-- Type: text/plain, Size: 2510 bytes --]
Add a specific workqueue to do dispatch. Later patches will use it to do
per-cpu request queue dispatch.
Signed-off-by: Shaohua Li <shli@fusionio.com>
---
drivers/md/md.c | 14 ++++++++++++++
drivers/md/md.h | 1 +
2 files changed, 15 insertions(+)
Index: linux/drivers/md/md.c
===================================================================
--- linux.orig/drivers/md/md.c 2012-05-24 15:42:56.892251685 +0800
+++ linux/drivers/md/md.c 2012-05-24 15:44:55.618759412 +0800
@@ -71,6 +71,7 @@ static void md_print_devices(void);
static DECLARE_WAIT_QUEUE_HEAD(resync_wait);
static struct workqueue_struct *md_wq;
static struct workqueue_struct *md_misc_wq;
+static struct workqueue_struct *md_run_wq;
#define MD_BUG(x...) { printk("md: bug in file %s, line %d\n", __FILE__, __LINE__); md_print_devices(); }
@@ -8446,6 +8447,12 @@ static void md_geninit(void)
proc_create("mdstat", S_IRUGO, NULL, &md_seq_fops);
}
+int md_schedule_work_on(int cpu, struct work_struct *work)
+{
+ return queue_work_on(cpu, md_run_wq, work);
+}
+EXPORT_SYMBOL(md_schedule_work_on);
+
static int __init md_init(void)
{
int ret = -ENOMEM;
@@ -8458,6 +8465,10 @@ static int __init md_init(void)
if (!md_misc_wq)
goto err_misc_wq;
+ md_run_wq = alloc_workqueue("md_run", WQ_MEM_RECLAIM, 0);
+ if (!md_run_wq)
+ goto err_run_wq;
+
if ((ret = register_blkdev(MD_MAJOR, "md")) < 0)
goto err_md;
@@ -8479,6 +8490,8 @@ static int __init md_init(void)
err_mdp:
unregister_blkdev(MD_MAJOR, "md");
err_md:
+ destroy_workqueue(md_run_wq);
+err_run_wq:
destroy_workqueue(md_misc_wq);
err_misc_wq:
destroy_workqueue(md_wq);
@@ -8571,6 +8584,7 @@ static __exit void md_exit(void)
export_array(mddev);
mddev->hold_active = 0;
}
+ destroy_workqueue(md_run_wq);
destroy_workqueue(md_misc_wq);
destroy_workqueue(md_wq);
}
Index: linux/drivers/md/md.h
===================================================================
--- linux.orig/drivers/md/md.h 2012-05-24 15:42:56.896251635 +0800
+++ linux/drivers/md/md.h 2012-05-24 15:44:55.622759274 +0800
@@ -616,6 +616,7 @@ extern int md_integrity_register(struct
extern void md_integrity_add_rdev(struct md_rdev *rdev, struct mddev *mddev);
extern int strict_strtoul_scaled(const char *cp, unsigned long *res, int scale);
extern void restore_bitmap_write_access(struct file *file);
+extern int md_schedule_work_on(int cpu, struct work_struct *work);
extern void mddev_init(struct mddev *mddev);
extern int md_run(struct mddev *mddev);
next prev parent reply other threads:[~2012-06-13 9:11 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-13 9:11 [patch 0/3 v3] MD: improve raid1/10 write performance for fast storage Shaohua Li
2012-06-13 9:11 ` Shaohua Li [this message]
2012-06-13 9:11 ` [patch 2/3 v3] raid1: percpu dispatch for write request if bitmap supported Shaohua Li
2012-06-13 9:11 ` [patch 3/3 v3] raid10: " Shaohua Li
2012-06-28 9:03 ` [patch 0/3 v3] MD: improve raid1/10 write performance for fast storage NeilBrown
2012-06-29 1:29 ` Stan Hoeppner
2012-06-29 2:52 ` NeilBrown
2012-06-29 3:02 ` Roberto Spadim
2012-06-30 4:37 ` Stan Hoeppner
2012-06-29 6:10 ` Shaohua Li
2012-07-02 7:36 ` Shaohua Li
2012-07-03 8:58 ` Shaohua Li
2012-07-04 1:45 ` NeilBrown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120613091231.470357766@kernel.org \
--to=shli@kernel.org \
--cc=axboe@kernel.dk \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).