commit | c72cab5ad9f849bbcfcf4be7952b8b8946cc626e | [log] [tgz] |
---|---|---|
author | Tiago Pasqualini <tiago.pasqualini@canonical.com> | Wed Sep 04 20:52:30 2024 -0300 |
committer | Daniel P. Berrangé <berrange@redhat.com> | Mon Sep 09 15:13:38 2024 +0100 |
tree | b6584d4d94c400671a2c844c4637ee7f3fd78f47 | |
parent | 48b8583698d96d6290726400789fcd51c55691b1 [diff] |
crypto: run qcrypto_pbkdf2_count_iters in a new thread CPU time accounting in the kernel has been demonstrated to have a sawtooth pattern[1][2]. This can cause the getrusage system call to not be as accurate as we are expecting, which can cause this calculation to stall. The kernel discussions shows that this inaccuracy happens when CPU time gets big enough, so this patch changes qcrypto_pbkdf2_count_iters to run in a fresh thread to avoid this inaccuracy. It also adds a sanity check to fail the process if CPU time is not accounted. [1] https://lore.kernel.org/lkml/159231011694.16989.16351419333851309713.tip-bot2@tip-bot2/ [2] https://lore.kernel.org/lkml/20221226031010.4079885-1-maxing.lan@bytedance.com/t/#m1c7f2fdc0ea742776a70fd1aa2a2e414c437f534 Resolves: #2398 Signed-off-by: Tiago Pasqualini <tiago.pasqualini@canonical.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>