public inbox for linux-crypto@vger.kernel.org
 help / color / mirror / Atom feed
* Does the SPARC optimized crypto and CRC code actually work?
@ 2026-03-16 20:42 Eric Biggers
  2026-03-17  2:48 ` Nathaniel Roach
  0 siblings, 1 reply; 10+ messages in thread
From: Eric Biggers @ 2026-03-16 20:42 UTC (permalink / raw)
  To: Andreas Larsson, David S. Miller, sparclinux; +Cc: linux-crypto

Hi,

The Linux kernel contains various SPARC crypto opcodes optimized
functions in lib/crypto/sparc/, lib/crc/sparc/, and arch/sparc/crypto/.

As the kernel's crypto and CRC code has been refactored over time, we've
been updating how the SPARC optimized code is integrated accordingly.
However, QEMU doesn't support the SPARC crypto opcodes, which means that
even though I (and maybe others) been running the tests on SPARC kernels
in QEMU, this doesn't actually execute the SPARC optimized code.

So I have to ask: is someone in the SPARC community actually testing
this code regularly?  That includes running all the KUnit tests for
crypto and CRC as well as the traditional crypto self-tests.

If not, then unless QEMU support is forthcoming I'd suggest we drop this
code to avoid issues on SPARC systems.  The generic code is much better
tested and we know that it works on any architecture, including SPARC.
Correctness is the first priority, especially for cryptography.

- Eric

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-16 20:42 Does the SPARC optimized crypto and CRC code actually work? Eric Biggers
@ 2026-03-17  2:48 ` Nathaniel Roach
  2026-03-17  3:45   ` Eric Biggers
  0 siblings, 1 reply; 10+ messages in thread
From: Nathaniel Roach @ 2026-03-17  2:48 UTC (permalink / raw)
  To: Eric Biggers, Andreas Larsson, David S. Miller, sparclinux; +Cc: linux-crypto

On 17/3/26 04:42, Eric Biggers wrote:
> Hi,
>
> The Linux kernel contains various SPARC crypto opcodes optimized
> functions in lib/crypto/sparc/, lib/crc/sparc/, and arch/sparc/crypto/.
>
> As the kernel's crypto and CRC code has been refactored over time, we've
> been updating how the SPARC optimized code is integrated accordingly.
> However, QEMU doesn't support the SPARC crypto opcodes, which means that
> even though I (and maybe others) been running the tests on SPARC kernels
> in QEMU, this doesn't actually execute the SPARC optimized code.
>
> So I have to ask: is someone in the SPARC community actually testing
> this code regularly?  That includes running all the KUnit tests for
> crypto and CRC as well as the traditional crypto self-tests.
>
> If not, then unless QEMU support is forthcoming I'd suggest we drop this
> code to avoid issues on SPARC systems.  The generic code is much better
> tested and we know that it works on any architecture, including SPARC.
> Correctness is the first priority, especially for cryptography.
>
> - Eric
>
I've been testing some of the PCI changes that have come through on my 
T5-2. I'll happily add some tests for the crypto functions, I've just 
got no idea how to do so.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-17  2:48 ` Nathaniel Roach
@ 2026-03-17  3:45   ` Eric Biggers
  2026-03-17  7:16     ` John Paul Adrian Glaubitz
  0 siblings, 1 reply; 10+ messages in thread
From: Eric Biggers @ 2026-03-17  3:45 UTC (permalink / raw)
  To: Nathaniel Roach
  Cc: Andreas Larsson, David S. Miller, sparclinux, linux-crypto

On Tue, Mar 17, 2026 at 10:48:52AM +0800, Nathaniel Roach wrote:
> I've been testing some of the PCI changes that have come through on my T5-2.
> I'll happily add some tests for the crypto functions, I've just got no idea
> how to do so.

Well, try enabling all KUnit tests in lib/crc/ and lib/crypto/, as well
as CONFIG_CRYPTO_SELFTESTS=y and CONFIG_CRYPTO_SELFTESTS_FULL=y.

However, will this be a regular testing run, or only a one-off run?  If
it will only be one-off, we'll quickly be back to where we started.

We need regular testing on either hardware or QEMU.

- Eric

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-17  3:45   ` Eric Biggers
@ 2026-03-17  7:16     ` John Paul Adrian Glaubitz
  2026-03-17 14:06       ` Theodore Tso
  2026-03-23 10:36       ` Nathaniel Roach
  0 siblings, 2 replies; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2026-03-17  7:16 UTC (permalink / raw)
  To: Eric Biggers, Nathaniel Roach
  Cc: Andreas Larsson, David S. Miller, sparclinux, linux-crypto

Hi Eric,

On Tue, 2026-03-17 at 03:45 +0000, Eric Biggers wrote:
> On Tue, Mar 17, 2026 at 10:48:52AM +0800, Nathaniel Roach wrote:
> > I've been testing some of the PCI changes that have come through on my T5-2.
> > I'll happily add some tests for the crypto functions, I've just got no idea
> > how to do so.
> 
> Well, try enabling all KUnit tests in lib/crc/ and lib/crypto/, as well
> as CONFIG_CRYPTO_SELFTESTS=y and CONFIG_CRYPTO_SELFTESTS_FULL=y.
> 
> However, will this be a regular testing run, or only a one-off run?  If
> it will only be one-off, we'll quickly be back to where we started.
> 
> We need regular testing on either hardware or QEMU.

If Nathaniel can test the code from time to time for the time being, we should
already get some coverage. In the near future, we could certainly set up a CI
job if you let me know what infrastructure to use for it.

Please keep in mind that a lot of us are doing this as volunteers and we don't
always have the possibilities to respond to such requests within a short time.

Feel free to use the sparclinux issue tracker if you want to file any requests:

https://github.com/sparclinux/issues/issues

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-17  7:16     ` John Paul Adrian Glaubitz
@ 2026-03-17 14:06       ` Theodore Tso
  2026-03-17 14:14         ` John Paul Adrian Glaubitz
  2026-03-23 10:36       ` Nathaniel Roach
  1 sibling, 1 reply; 10+ messages in thread
From: Theodore Tso @ 2026-03-17 14:06 UTC (permalink / raw)
  To: John Paul Adrian Glaubitz
  Cc: Eric Biggers, Nathaniel Roach, Andreas Larsson, David S. Miller,
	sparclinux, linux-crypto

How hard would it be to add support for the Sparc crypto accleration
opcodes to QEMU?  Is that something that could be, say, an GSOC or
Outreachy project?

Just a thought,

						- Ted

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-17 14:06       ` Theodore Tso
@ 2026-03-17 14:14         ` John Paul Adrian Glaubitz
  2026-03-22 14:59           ` Eric Biggers
  0 siblings, 1 reply; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2026-03-17 14:14 UTC (permalink / raw)
  To: Theodore Tso
  Cc: Eric Biggers, Nathaniel Roach, Andreas Larsson, David S. Miller,
	sparclinux, linux-crypto

Hi Ted,

On Tue, 2026-03-17 at 10:06 -0400, Theodore Tso wrote:
> How hard would it be to add support for the Sparc crypto accleration
> opcodes to QEMU?  Is that something that could be, say, an GSOC or
> Outreachy project?

Good idea. I'll ask someone who has been mentoring QEMU enhancements in the past.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-17 14:14         ` John Paul Adrian Glaubitz
@ 2026-03-22 14:59           ` Eric Biggers
  2026-03-23  5:58             ` John Paul Adrian Glaubitz
  0 siblings, 1 reply; 10+ messages in thread
From: Eric Biggers @ 2026-03-22 14:59 UTC (permalink / raw)
  To: John Paul Adrian Glaubitz
  Cc: Theodore Tso, Nathaniel Roach, Andreas Larsson, David S. Miller,
	sparclinux, linux-crypto

On Tue, Mar 17, 2026 at 03:14:50PM +0100, John Paul Adrian Glaubitz wrote:
> Hi Ted,
> 
> On Tue, 2026-03-17 at 10:06 -0400, Theodore Tso wrote:
> > How hard would it be to add support for the Sparc crypto accleration
> > opcodes to QEMU?  Is that something that could be, say, an GSOC or
> > Outreachy project?
> 
> Good idea. I'll ask someone who has been mentoring QEMU enhancements in the past.
> 
> Adrian

FYI, I filed https://github.com/sparclinux/issues/issues/77

- Eric

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-22 14:59           ` Eric Biggers
@ 2026-03-23  5:58             ` John Paul Adrian Glaubitz
  0 siblings, 0 replies; 10+ messages in thread
From: John Paul Adrian Glaubitz @ 2026-03-23  5:58 UTC (permalink / raw)
  To: Eric Biggers
  Cc: Theodore Tso, Nathaniel Roach, Andreas Larsson, David S. Miller,
	sparclinux, linux-crypto

Hi Eric,

On Sun, 2026-03-22 at 07:59 -0700, Eric Biggers wrote:
> On Tue, Mar 17, 2026 at 03:14:50PM +0100, John Paul Adrian Glaubitz wrote:
> > Hi Ted,
> > 
> > On Tue, 2026-03-17 at 10:06 -0400, Theodore Tso wrote:
> > > How hard would it be to add support for the Sparc crypto accleration
> > > opcodes to QEMU?  Is that something that could be, say, an GSOC or
> > > Outreachy project?
> > 
> > Good idea. I'll ask someone who has been mentoring QEMU enhancements in the past.
> > 
> > Adrian
> 
> FYI, I filed https://github.com/sparclinux/issues/issues/77

That's a very well crafted bug report! I appreciate the effort and will try to reach
out to the QEMU people and see if we can get something done within GSoC.

@Nathanial: Can you run the crypto tests and report back?

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-17  7:16     ` John Paul Adrian Glaubitz
  2026-03-17 14:06       ` Theodore Tso
@ 2026-03-23 10:36       ` Nathaniel Roach
  2026-03-23 18:20         ` Eric Biggers
  1 sibling, 1 reply; 10+ messages in thread
From: Nathaniel Roach @ 2026-03-23 10:36 UTC (permalink / raw)
  To: John Paul Adrian Glaubitz, Eric Biggers
  Cc: Andreas Larsson, David S. Miller, sparclinux, linux-crypto

On 17/3/26 15:16, John Paul Adrian Glaubitz wrote:
> Hi Eric,
>
> On Tue, 2026-03-17 at 03:45 +0000, Eric Biggers wrote:
>> On Tue, Mar 17, 2026 at 10:48:52AM +0800, Nathaniel Roach wrote:
>>> I've been testing some of the PCI changes that have come through on my T5-2.
>>> I'll happily add some tests for the crypto functions, I've just got no idea
>>> how to do so.
>> Well, try enabling all KUnit tests in lib/crc/ and lib/crypto/, as well
>> as CONFIG_CRYPTO_SELFTESTS=y and CONFIG_CRYPTO_SELFTESTS_FULL=y.
>>
>> However, will this be a regular testing run, or only a one-off run?  If
>> it will only be one-off, we'll quickly be back to where we started.
>>
>> We need regular testing on either hardware or QEMU.
> If Nathaniel can test the code from time to time for the time being, we should
> already get some coverage. In the near future, we could certainly set up a CI
> job if you let me know what infrastructure to use for it.
>
> Please keep in mind that a lot of us are doing this as volunteers and we don't
> always have the possibilities to respond to such requests within a short time.
>
> Feel free to use the sparclinux issue tracker if you want to file any requests:
>
> https://github.com/sparclinux/issues/issues
>
> Adrian
I enabled the below options, based on what I could find, in my test config:

CONFIG_CRYPTO_SELFTESTS=y
CONFIG_CRYPTO_SELFTESTS_FULL=y
CONFIG_CRYPTO_ARIA,BLOWFISH,CAMELLIA,CAST5,CAST6,DES,FCRYPT,SERPENT,
   SM4_GENERIC,TWOFISH,CTR=m
CONFIG_CRC_KUNIT_TEST=m
CONFIG_CRC_BENCHMARK=y
CONFIG_CRYPTO_LIB_BENCHMARK=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_KUNIT=m

This is what looks to be the relevant parts of dmesg:

# dmesg | grep -i 'crypt\|rng\|aes\|alg:\|opcode'
[    2.191836] CPU CAPS: [hpc,ima,pause,cbcond,aes,des,kasumi,camellia]
[    7.090965] Using sparc64 crc32c opcode optimized CRC32C implementation
[    7.090974] Using sparc64 sha256 opcode optimized SHA-256/SHA-224 
implementation
[    7.090979] Using sparc64 sha512 opcode optimized SHA-512/SHA-384 
implementation
[    7.235616] alg: full crypto tests enabled.  This is intended for 
developer use only.
[   20.488863] random: crng init done
[   20.525724] n2rng v0.3 (Jan 7, 2017)
[   20.525746] n2rng f029b448: Registered RNG HVAPI major 2 minor 0
[   20.525758] n2rng f029b448: Found multi-unit-capable RNG, units: 2
[   20.526479] aes_sparc64: Using sparc64 aes opcodes optimized AES 
implementation
[   20.527437] des_sparc64: Using sparc64 des opcodes optimized DES 
implementation
[   20.528391] camellia_sparc64: Using sparc64 camellia opcodes 
optimized CAMELLIA implementation
[   20.529874] n2rng f029b448: Selftest passed on unit 0
[   20.532270] n2rng f029b448: Selftest passed on unit 1
[   20.532315] n2rng f029b448: RNG ready

Is this sufficient to know if it's correct, or are more tests needed?

Cheers,
Nathaniel.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Does the SPARC optimized crypto and CRC code actually work?
  2026-03-23 10:36       ` Nathaniel Roach
@ 2026-03-23 18:20         ` Eric Biggers
  0 siblings, 0 replies; 10+ messages in thread
From: Eric Biggers @ 2026-03-23 18:20 UTC (permalink / raw)
  To: Nathaniel Roach
  Cc: John Paul Adrian Glaubitz, Andreas Larsson, David S. Miller,
	sparclinux, linux-crypto

On Mon, Mar 23, 2026 at 06:36:52PM +0800, Nathaniel Roach wrote:
> On 17/3/26 15:16, John Paul Adrian Glaubitz wrote:
> > Hi Eric,
> > 
> > On Tue, 2026-03-17 at 03:45 +0000, Eric Biggers wrote:
> > > On Tue, Mar 17, 2026 at 10:48:52AM +0800, Nathaniel Roach wrote:
> > > > I've been testing some of the PCI changes that have come through on my T5-2.
> > > > I'll happily add some tests for the crypto functions, I've just got no idea
> > > > how to do so.
> > > Well, try enabling all KUnit tests in lib/crc/ and lib/crypto/, as well
> > > as CONFIG_CRYPTO_SELFTESTS=y and CONFIG_CRYPTO_SELFTESTS_FULL=y.
> > > 
> > > However, will this be a regular testing run, or only a one-off run?  If
> > > it will only be one-off, we'll quickly be back to where we started.
> > > 
> > > We need regular testing on either hardware or QEMU.
> > If Nathaniel can test the code from time to time for the time being, we should
> > already get some coverage. In the near future, we could certainly set up a CI
> > job if you let me know what infrastructure to use for it.
> > 
> > Please keep in mind that a lot of us are doing this as volunteers and we don't
> > always have the possibilities to respond to such requests within a short time.
> > 
> > Feel free to use the sparclinux issue tracker if you want to file any requests:
> > 
> > https://github.com/sparclinux/issues/issues
> > 
> > Adrian
> I enabled the below options, based on what I could find, in my test config:
> 
> CONFIG_CRYPTO_SELFTESTS=y
> CONFIG_CRYPTO_SELFTESTS_FULL=y
> CONFIG_CRYPTO_ARIA,BLOWFISH,CAMELLIA,CAST5,CAST6,DES,FCRYPT,SERPENT,
>   SM4_GENERIC,TWOFISH,CTR=m
> CONFIG_CRC_KUNIT_TEST=m
> CONFIG_CRC_BENCHMARK=y
> CONFIG_CRYPTO_LIB_BENCHMARK=y
> CONFIG_DEBUG_MEMORY_INIT=y
> CONFIG_KUNIT=m

I recommend using the latest linux-next, to get the latest KUnit-related
kconfig updates, and using the following on top of sparc64_defconfig:

(
    cat lib/{crc,crypto}/.kunitconfig
    echo CONFIG_EXPERT=y
    echo CONFIG_CRYPTO=y
    echo CONFIG_CRYPTO_SELFTESTS=y
    echo CONFIG_CRYPTO_SELFTESTS_FULL=y
    echo CONFIG_CRYPTO_DES_SPARC64=y
    echo CONFIG_CRYPTO_AES_SPARC64=y
    echo CONFIG_CRYPTO_CAMELLIA_SPARC64=y
    echo CONFIG_CRYPTO_AES=y
    echo CONFIG_CRYPTO_DES=y
    echo CONFIG_CRYPTO_CAMELLIA=y
    echo CONFIG_CRYPTO_ECB=y
    echo CONFIG_CRYPTO_CBC=y
    echo CONFIG_CRYPTO_CTR=y
) >> .config

Note: most of the complexity here is to fully enable the traditional
crypto self-tests to cover arch/sparc/crypto/.  The plan is to finish
migrating those into lib/crypto/, in which case that code will become
covered by the lib/crypto/ tests and only the kunitconfigs would be
needed.  But for now, the traditional tests are still needed too.

- Eric

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-03-23 18:20 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-16 20:42 Does the SPARC optimized crypto and CRC code actually work? Eric Biggers
2026-03-17  2:48 ` Nathaniel Roach
2026-03-17  3:45   ` Eric Biggers
2026-03-17  7:16     ` John Paul Adrian Glaubitz
2026-03-17 14:06       ` Theodore Tso
2026-03-17 14:14         ` John Paul Adrian Glaubitz
2026-03-22 14:59           ` Eric Biggers
2026-03-23  5:58             ` John Paul Adrian Glaubitz
2026-03-23 10:36       ` Nathaniel Roach
2026-03-23 18:20         ` Eric Biggers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox