summaryrefslogtreecommitdiff
path: root/include/linux/slow-work.h
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2009-04-03 19:42:35 +0400
committerDavid Howells <dhowells@redhat.com>2009-04-03 19:42:35 +0400
commit12e22c5e4bc08ab4b05ac079fe40d9891c5e81a0 (patch)
treee3d34a8f21d4c00dff311dfef564c59a76e1ae70 /include/linux/slow-work.h
parent109d9272c423f46604d45fedfe87e21ee0b25180 (diff)
downloadlinux-12e22c5e4bc08ab4b05ac079fe40d9891c5e81a0.tar.xz
Make the slow work pool configurable
Make the slow work pool configurable through /proc/sys/kernel/slow-work. (*) /proc/sys/kernel/slow-work/min-threads The minimum number of threads that should be in the pool as long as it is in use. This may be anywhere between 2 and max-threads. (*) /proc/sys/kernel/slow-work/max-threads The maximum number of threads that should in the pool. This may be anywhere between min-threads and 255 or NR_CPUS * 2, whichever is greater. (*) /proc/sys/kernel/slow-work/vslow-percentage The percentage of active threads in the pool that may be used to execute very slow work items. This may be between 1 and 99. The resultant number is bounded to between 1 and one fewer than the number of active threads. This ensures there is always at least one thread that can process very slow work items, and always at least one thread that won't. Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Serge Hallyn <serue@us.ibm.com> Acked-by: Steve Dickson <steved@redhat.com> Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com> Acked-by: Al Viro <viro@zeniv.linux.org.uk> Tested-by: Daire Byrne <Daire.Byrne@framestore.com>
Diffstat (limited to 'include/linux/slow-work.h')
-rw-r--r--include/linux/slow-work.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/slow-work.h b/include/linux/slow-work.h
index 4dd754af393e..8262809dfa8b 100644
--- a/include/linux/slow-work.h
+++ b/include/linux/slow-work.h
@@ -14,6 +14,8 @@
#ifdef CONFIG_SLOW_WORK
+#include <linux/sysctl.h>
+
struct slow_work;
/*
@@ -83,6 +85,9 @@ extern int slow_work_enqueue(struct slow_work *work);
extern int slow_work_register_user(void);
extern void slow_work_unregister_user(void);
+#ifdef CONFIG_SYSCTL
+extern ctl_table slow_work_sysctls[];
+#endif
#endif /* CONFIG_SLOW_WORK */
#endif /* _LINUX_SLOW_WORK_H */