[dm-devel] dm-integrity stalls with iMX6q CAAM

Horia Geanta horia.geanta at nxp.com
Wed Oct 17 13:35:37 UTC 2018


On 9/21/2018 3:06 PM, Neil Armstrong wrote:
> Hi,
> 
> I recently configured dm-crypt + dm-integrity on an iMX6q platform with CAAM Hash functions enabled using the following command lines :
> 
> Linux 4.14.71
> 
> cryptsetup luksFormat /dev/mmcblk1p3 --cipher aes-xts-plain64 --type luks2 --integrity hmac-sha256 --sector-size 512 --use-urandom
> cryptsetup open /dev/mmcblk1p3 root
> mkfs.ext4 -v -F /dev/mapper/root
> 
> luksFormat and open finishes correctly, luksDump and status reports correct dm and luks properties.
> 
> but when trying to access the /dev/mapper/root (mkfs, sha256sum or whatever), it blocks without any warning or errors reported by the kernel.
> I can see a few (~170) interrupts on the jr0 interrupt then nothing.
> 
> Is there a particular issue with hmac-sha256 with the linux CAAM driver ?
> 
> When disabling the CAAM hash functions or using another cipher & integrity pair, it works like a charm.
> 
The issue you are seeing is most probably related to CAAM driver not
implementing correctly the crypto requests "backlogging".
See commit c0403ec0bb5a ("Revert "dm crypt: fix deadlock when async crypto
algorithm returns -EBUSY"") for a detailed description.

Historically, there have been several CAAM backlogging implementations proposed
- but all were rejected:
v1: https://patchwork.kernel.org/patch/7144701
v2: https://patchwork.kernel.org/patch/7199241
v3: https://patchwork.kernel.org/patch/7221941
v4: https://patchwork.kernel.org/patch/7230241
v5: https://patchwork.kernel.org/patch/9033121

Discussion here: https://community.nxp.com/message/1020096
mentions v2 as solving the issue.
You could try it while we find a solution that would be accepted upstream.

Hope this helps,
Horia




More information about the dm-devel mailing list