diff options
| author | Anton Blanchard <anton@samba.org> | 2004-09-07 17:57:38 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-09-07 17:57:38 -0700 |
| commit | bb795e336f71224668223d6537a396d5ff56f6a6 (patch) | |
| tree | e55293ddb881ae026b3584e596213ac467956bcd /kernel/workqueue.c | |
| parent | 24668b779d13b5069c000ae02926b032d6ea6fcd (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.c | 2 |
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); - |
