Re: [PATCH 1/2] crypto: pcrypt - Remove pcrypt

Hendrik Donner <[email protected]> Wed, 22 Jul 2026 18:12:16 +0200
Newsgroups org.kernel.vger.linux-crypto,org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Message-ID <[email protected]>
Hello,

On 7/21/26 21:50, Eric Biggers wrote:
> On Tue, Jul 21, 2026 at 08:59:21PM +0200, Hendrik Donner wrote:
>> Hello,
>>
>> On 7/14/26 00:32, Eric Biggers wrote:
>>> pcrypt was originally intended to improve IPsec performance.  However,
>>> it's no longer useful for that.  Reports from the rare cases that anyone
>>> has actually tried to use it over the years indicate that it actually
>>> reduces IPsec performance, e.g.:
>>>
>>> * https://github.com/libreswan/libreswan/wiki/Internals:-Cryptographic-Acceleration#obsoleted-ipsec-accelerations
>>> * https://users.strongswan.narkive.com/liqTaTq8/strongswan-problem-with-pcrypt
>>> * https://unix.stackexchange.com/questions/594336/ipsec-multithreading-via-pcrypt-worse-than-single-thread
>>>
>>> It's also undocumented and quite difficult to actually use.  Its design
>>> is also broken, in that any unprivileged program can enable pcrypt
>>> systemwide at any time (by instantiating it using AF_ALG).
>>>
>>> Meanwhile, pcrypt has been a regular source of bugs, including at least
>>> four that have received CVEs.
>>>
>>> Let's just remove it.  No one seems to care about it anymore other than
>>> people looking for vulnerabilities.
>>>
>>
>> my company is a user. We have a hardware platform based on an IMX6 SoC
>> using IPSec and configure pcrypt using crconf. Current performance
>> difference:
>>
>> iperf3 -c <IP> --time 60 -R
>>
>> pcrypt:
>> Download: 107 Mbits/sec
>>
>> No pcrypt:
>> Download: 59.3 Mbits/sec
>>
>> iperf3 -c <IP> --time 60
>>
>> pcrypt:
>> Upload: 65.9 Mbits/sec
>>
>> No pcrypt:
>> Upload: 52.0 Mbits/sec
>>
>> The relevant crypto templates are configured in early userspace and
>> since i got curious, that has been the case since 2017.
>>
>> Mostly using
>>
>> pcrypt(gcm_base(ctr-aes-neonbs,ghash-generic))
>>
>> nowadays, AES-CBC in the past/as a fallback option.
>>
>> So at least on some platforms there is still a significant performance
>> boots, at least for downloads in this case.
> 
> Thanks for bringing up your use case.
> 
> Have you looked into alternative solutions such as Receive Side Scaling
> (https://docs.kernel.org/networking/scaling.html#rss-receive-side-scaling)?
> AFAIK it's not just the crypto performance that makes pcrypt unnecessary
> these days, but also the design of the networking layer.

I'm looking into this more, the IMX.6 is a bit limited with IRQ handling 
and queue distribution.

> 
> I understand that i.MX6 doesn't have the ARMv8 crypto extensions.
> However, surely you could at least use the NEON-optimized GHASH code?
> Is there a reason you're not using it?

I think it was historically not working well for us, retested:

NEON GHASH with pcrypt:

Download: 116 Mbits/sec
Upload: 74.3 Mbits/sec

NEON GHASH baseline:

Download: 90.7 Mbits/sec
Upload: 60.8 Mbits/sec

Looks better, still a ~15 Mbit improvement with pcrypt.

I want to point out that without IPSec our baseline is:

Download: 942 Mbits/sec
Upload: 942 Mbits/sec

Intel IGB ethernet.

Regards,
Hendrik

> 
> - Eric