From 05e59e5fb0064c97a1c10921ecd549f2d4a58565 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 09 Oct 2024 06:14:40 +0000 Subject: [PATCH] add REDIRECT --- kernel/fs/verity/verify.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/kernel/fs/verity/verify.c b/kernel/fs/verity/verify.c index 817ce4f..10e4188 100644 --- a/kernel/fs/verity/verify.c +++ b/kernel/fs/verity/verify.c @@ -227,7 +227,7 @@ const struct merkle_tree_params *params = &vi->tree_params; struct ahash_request *req; struct bio_vec *bv; - int i; + struct bvec_iter_all iter_all; unsigned long max_ra_pages = 0; /* This allocation never fails, since it's mempool-backed. */ @@ -243,12 +243,12 @@ * This improves sequential read performance, as it greatly * reduces the number of I/O requests made to the Merkle tree. */ - bio_for_each_segment_all(bv, bio, i) + bio_for_each_segment_all(bv, bio, iter_all) max_ra_pages++; max_ra_pages /= 4; } - bio_for_each_segment_all(bv, bio, i) { + bio_for_each_segment_all(bv, bio, iter_all) { struct page *page = bv->bv_page; unsigned long level0_index = page->index >> params->log_arity; unsigned long level0_ra_pages = @@ -279,15 +279,15 @@ int __init fsverity_init_workqueue(void) { /* - * Use an unbound workqueue to allow bios to be verified in parallel - * even when they happen to complete on the same CPU. This sacrifices - * locality, but it's worthwhile since hashing is CPU-intensive. + * Use a high-priority workqueue to prioritize verification work, which + * blocks reads from completing, over regular application tasks. * - * Also use a high-priority workqueue to prioritize verification work, - * which blocks reads from completing, over regular application tasks. + * For performance reasons, don't use an unbound workqueue. Using an + * unbound workqueue for crypto operations causes excessive scheduler + * latency on ARM64. */ fsverity_read_workqueue = alloc_workqueue("fsverity_read_queue", - WQ_UNBOUND | WQ_HIGHPRI, + WQ_HIGHPRI, num_online_cpus()); if (!fsverity_read_workqueue) return -ENOMEM; -- Gitblit v1.6.2