RFR: 8317538: potential bottleneck in Provider::getService: specjvm2008::crypto.rsa have scalability issue for high vCPU numbers

Vladimir Ivanov vaivanov at openjdk.org
Fri Oct 25 00:29:05 UTC 2024


On Mon, 21 Oct 2024 18:18:12 GMT, Vladimir Ivanov <vaivanov at openjdk.org> wrote:

> This patch remove access to the shared variable to fix scalability issue in the multithread environment.  According to testing by the specjvm2008::crypto.rsa the one thread performance reduced for less than 1% while the score for the multithread run increased in ~2x. For the 2 socket system with Xeon 8480+ numbers looks as: 
> - 1 thread: 643.15 for original version vs 642.54 for patched one;
> - 224 threads: 22446.19 for original vs 46147.41 for patched.
> 
> The RSABench microbenchmark reports no score changes for the 1 thread (average for all testcases) and 2.4% improvement for the 224 threads.

The specjvm::crypto.aes workload not affected by this issue.
It implemented as mix of DES and AES encryptions but AES much better optimized vs DES. The top 3 methods for this workload for the 112T run are:
85.6% com::sun::crypto::provider::DESCrypt::cipherBlock
6.5%   com::sun::crypto::provider::DESCrypt::perm
4.4%   com::sun::crypto::provider::CipherCore::update
i.e. this workload have no problem with the getService method.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/21622#issuecomment-2436566862


More information about the security-dev mailing list