--- /dev/null
+Increase bio integrity concurrency by unbinding it from a specific core,
+and allow these work items to run on any core. WQ_UNBOUND queues aren't
+per-cpu, so max_active should be scaled according to the number of cores.
+
+diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c
+--- a/fs/bio-integrity.c
++++ b/fs/bio-integrity.c
+@@ -763,10 +763,11 @@ void __init bio_integrity_init(void)
+ {
+ /*
+ * kintegrityd won't block much but may burn a lot of CPU cycles.
+- * Make it highpri CPU intensive wq with max concurrency of 1.
++ * Make it highpri CPU intensive wq with full concurrency.
+ */
+ kintegrityd_wq = alloc_workqueue("kintegrityd", WQ_MEM_RECLAIM |
+- WQ_HIGHPRI | WQ_CPU_INTENSIVE, 1);
++ WQ_HIGHPRI | WQ_CPU_INTENSIVE |
++ WQ_UNBOUND, num_online_cpus());
+ if (!kintegrityd_wq)
+ panic("Failed to create kintegrityd\n");
+
vfs-project-quotas-rhel7.patch
fix-integrity-verify-rhel7.patch
fix-sd-dif-complete-rhel7.patch
+bio-integrity-unbound-concurrency-rhel7.patch
scsi-requeue-aborted-commands-instead-of-retry.patch
block-integrity-allow-optional-integrity-functions-rhel7.patch
block-pass-bio-into-integrity_processing_fn-rhel7.patch
blkdev_tunables-3.9.patch
vfs-project-quotas-rhel7.patch
fix-integrity-verify-rhel7.patch
+bio-integrity-unbound-concurrency-rhel7.patch
scsi-requeue-aborted-commands-instead-of-retry.patch
block-integrity-allow-optional-integrity-functions-rhel7.patch
block-pass-bio-into-integrity_processing_fn-rhel7.patch