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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.