]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
kcmp: improve performance adding an unlikely hint to task comparisons
authorColin Ian King <colin.i.king@gmail.com>
Thu, 13 Feb 2025 16:39:16 +0000 (16:39 +0000)
committerChristian Brauner <brauner@kernel.org>
Fri, 21 Feb 2025 09:25:33 +0000 (10:25 +0100)
Adding an unlikely() hint on task comparisons on an unlikely error
return path improves run-time performance of the kcmp system call.

Benchmarking on an i9-12900 shows an improvement of ~5.5% on kcmp().
Results based on running 20 tests with turbo disabled (to reduce
clock freq turbo changes), with 10 second run per test and comparing
the number of kcmp calls per second. The % Standard deviation of 20
tests was ~0.25%, results are reliable.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Link: https://lore.kernel.org/r/20250213163916.709392-1-colin.i.king@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
kernel/kcmp.c

index 2c596851f8a90c042f3c63b320cc1ec683a5a341..7c1a65bd5f8d3b47e237c83258d5a416138fdb61 100644 (file)
@@ -145,7 +145,7 @@ SYSCALL_DEFINE5(kcmp, pid_t, pid1, pid_t, pid2, int, type,
         */
        task1 = find_task_by_vpid(pid1);
        task2 = find_task_by_vpid(pid2);
-       if (!task1 || !task2)
+       if (unlikely(!task1 || !task2))
                goto err_no_task;
 
        get_task_struct(task1);