summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-01-03 15:01:48 +0100
committerJens Axboe <jaxboe@fusionio.com>2011-01-03 15:01:48 +0100
commita6e8dc46ff0b7defbfa4f29a71aee263377ec573 (patch)
treea7c8ecf4a5fa52893d8a3e17200ae890ae3a1036
parent89b90be2d877a904b1704e4029db65655bfc6282 (diff)
downloadlinux-a6e8dc46ff0b7defbfa4f29a71aee263377ec573.tar.gz
linux-a6e8dc46ff0b7defbfa4f29a71aee263377ec573.tar.bz2
linux-a6e8dc46ff0b7defbfa4f29a71aee263377ec573.zip
bio-integrity: mark kintegrityd_wq highpri and CPU intensive
Work items processed by kintegrityd_wq won't block much, may burn a lot of CPU cycles and affect IO latency. Use alloc_workqueue() to mark it highpri and CPU intensive with max concurrency of 1. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
-rw-r--r--fs/bio-integrity.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c
index 4d0ff5ee27b8..e49cce234c65 100644
--- a/fs/bio-integrity.c
+++ b/fs/bio-integrity.c
@@ -782,7 +782,12 @@ void __init bio_integrity_init(void)
{
unsigned int i;
- kintegrityd_wq = create_workqueue("kintegrityd");
+ /*
+ * kintegrityd won't block much but may burn a lot of CPU cycles.
+ * Make it highpri CPU intensive wq with max concurrency of 1.
+ */
+ kintegrityd_wq = alloc_workqueue("kintegrityd", WQ_MEM_RECLAIM |
+ WQ_HIGHPRI | WQ_CPU_INTENSIVE, 1);
if (!kintegrityd_wq)
panic("Failed to create kintegrityd\n");