summaryrefslogtreecommitdiff
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2004-09-07 17:57:38 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-09-07 17:57:38 -0700
commitbb795e336f71224668223d6537a396d5ff56f6a6 (patch)
treee55293ddb881ae026b3584e596213ac467956bcd /kernel/workqueue.c
parent24668b779d13b5069c000ae02926b032d6ea6fcd (diff)
[PATCH] Speed up oprofile buffer drain code
I noticed a large machine was doing about 400,000 context switches per second when oprofile was enabled. Upon closer inspection it looks like we were rearming the buffer sync timer without modifying the expire time. Now that we have schedule_delayed_work_on I believe we can remove the timer completely. Each cpu should be offset by 1 jiffy so they dont all fire at the same time. I bumped DEFAULT_TIMER_EXPIRE from 2 to 10 times a second to be sure we reap cpu buffers. With the following patch the same large machine gets about 4000 context switches per second. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r--kernel/workqueue.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 3f559661ee19..ee77ccd01d04 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -525,5 +525,5 @@ EXPORT_SYMBOL_GPL(destroy_workqueue);
EXPORT_SYMBOL(schedule_work);
EXPORT_SYMBOL(schedule_delayed_work);
+EXPORT_SYMBOL(schedule_delayed_work_on);
EXPORT_SYMBOL(flush_scheduled_work);
-