bio-integrity: mark kintegrityd_wq highpri and CPU intensive
authorTejun Heo <tj@kernel.org>
Mon, 3 Jan 2011 14:01:48 +0000 (15:01 +0100)
committerJens Axboe <jaxboe@fusionio.com>
Mon, 3 Jan 2011 14:01:48 +0000 (15:01 +0100)
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>
fs/bio-integrity.c

index 4d0ff5ee27b86bef6d377b9211694941939999a9..e49cce234c653162560796710ee125134053183d 100644 (file)
@@ -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");