hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/fs/verity/verify.c
....@@ -279,15 +279,15 @@
279279 int __init fsverity_init_workqueue(void)
280280 {
281281 /*
282
- * Use an unbound workqueue to allow bios to be verified in parallel
283
- * even when they happen to complete on the same CPU. This sacrifices
284
- * locality, but it's worthwhile since hashing is CPU-intensive.
282
+ * Use a high-priority workqueue to prioritize verification work, which
283
+ * blocks reads from completing, over regular application tasks.
285284 *
286
- * Also use a high-priority workqueue to prioritize verification work,
287
- * which blocks reads from completing, over regular application tasks.
285
+ * For performance reasons, don't use an unbound workqueue. Using an
286
+ * unbound workqueue for crypto operations causes excessive scheduler
287
+ * latency on ARM64.
288288 */
289289 fsverity_read_workqueue = alloc_workqueue("fsverity_read_queue",
290
- WQ_UNBOUND | WQ_HIGHPRI,
290
+ WQ_HIGHPRI,
291291 num_online_cpus());
292292 if (!fsverity_read_workqueue)
293293 return -ENOMEM;