Re: [PATCH v2 0/7] dm-integrity: asynchronous hash support

Harald Freudenberger
2025-09-18T15:00:37Z

[-- Attachment #1: Type: text/plain, Size: 2159 bytes --]

On 2025-09-11 17:58, Mikulas Patocka wrote:
> On Thu, 11 Sep 2025, Ingo Franzki wrote:
>
>> >> So, it looks like a dm-crypt bug.
>> >>
>> >> Please, revert my patches and run the same test on a clean 6.17.0-rc5 just
>> >> to verify that the patches do not introduce the bug.
>> >
>> > With your patches reverted the combined mode fails the same way as with your patches.
>> > So they did not introduce the bug.
>>
>> Mikulas, do you have any idea what could be causing this errors?
>> Is it that dm-crypt is not properly dealing with async-only HMAC
>> ciphers?
>> Async-only encryption ciphers seem to work fine in dm-crypt, since
>> LUKS with PAES (but no integrity) works fine, and PAES is an
>> async-onky cipher.
>> LUKS with sync-HMAC ciphers (e.g. clear key HMAC) also works fine,
>> even in combination with PAES.
>
> Yes, I think that it's a problem with async HMAC. The bug is probably
> either in dm-crypt or in the crypto library.
>
> Do you have some other (non-dm-crypt-related) workload that uses the
> async authentication, so that we can determine whether the bug is in
> dm-crypt or crypto?
>
> Otherwise, would it be possible to give us a virtual machine on the
> mainframe to debug this issue?
>
> Mikulas

So here is now an out-of-tree kernel module build which offers a pseudo
phmac-sha256
for testing and debugging purpose. In the end this is just a asynch
(ahash) wrapper
around the hmac-sha256 shash crypto subsystem implementation. It should
compile and
be usable on all platforms (s390, x64, arm, ...).

I ran dm-integrity tests with this and all worked fine. Ingo ran
dm-crypt tests
where he combined aes-cbc encryption with phmac-sha256 integrity and saw
hangs
on cryptsetup open. He also reported that these issues are different to
what he
saw with the 'real' phmac in combination with aes encryption. A short
glimpse gives
me the impression that there is a job blocking the system's workqueue.
However, I
could not find any indication that the pseudo phmac is not working
properly.

For instructions on how to build and use the module see the README in
the tgz archive.

Thanks to all
Harald Freudenberger

[-- Attachment #2: pseudo_phmac.tgz --]
[-- Type: application/gzip, Size: 3902 bytes --]