Hi Herbert,
Thank you so much for the report!
On 2/8/23 14:21, Herbert Xu wrote:
> On Fri, Sep 16, 2022 at 12:57:35PM +0000, Taehee Yoo wrote:
>>
>> +#define aria_ark_8way(x0, x1, x2, x3, \
>> + x4, x5, x6, x7, \
>> + t0, rk, idx, round) \
>> + /* AddRoundKey */ \
>> + vpbroadcastb ((round * 16) + idx + 3)(rk), t0; \
>
> This triggers an invalid OP code on CPUs that supports AVX but not
> AVX2:
Thanks for it, vpbroadcastX instructions are not supported by AVX.
So, I think vbroadcastss should be used instead.
I will send the fix patch for it soon.
>
> [ 10.857327] invalid opcode: 0000 [#1] PREEMPT SMP
> [ 10.857935] CPU: 1 PID: 2816 Comm: cryptomgr_test Tainted: G
W 6.2.0-rc1+ #1
> [ 10.858783] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS 1.14.0-2 04/01/2014
> [ 10.859622] RIP: 0010:__aria_aesni_avx_crypt_16way+0x22d/0x6000
[aria_aesni_avx_x86_64]
> [ 10.860440] Code: c4 41 7a 7f 48 10 c4 41 7a 7f 50 20 c4 41 7a 7f
58 30 c4 41 7a 7f 60 40 c4 41 7a 7f 68 50 c4 41 7a 7f 70 60 c4 41 7a 7f
78 70 <c4> c2 79 78 41 0b c5 39 ef c0 c4 c2 79 78 41 0a c5 31 ef c8 c4 c2
> [ 10.862409] RSP: 0018:ffffc900002eb728 EFLAGS: 00010206
> [ 10.863011] RAX: ffff88800666b00f RBX: ffff88800666b00f RCX:
ffffffffa0c02010
> [ 10.863754] RDX: ffff88800666b00f RSI: ffff88800666b00f RDI:
ffff88800408a420
> [ 10.864500] RBP: ffffc900002eb728 R08: ffff88800666b08f R09:
ffff88800408a420
> [ 10.865270] R10: ffff8880064de040 R11: 00000000fffffff0 R12:
ffff88800408a420
> [ 10.866019] R13: 000000000000011b R14: ffff88800666b00f R15:
ffff88800666b00f
> [ 10.866764] FS: 0000000000000000(0000) GS:ffff88801ed00000(0000)
knlGS:0000000000000000
> [ 10.867587] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 10.868230] CR2: 00007f8c80f160a4 CR3: 0000000001e0a002 CR4:
0000000000060ee0
> [ 10.868986] Call Trace:
> [ 10.869392] <TASK>
> [ 10.869744] aria_aesni_avx_encrypt_16way+0x77/0xf0
[aria_aesni_avx_x86_64]
> [ 10.870489] ecb_do_encrypt.constprop.0+0x100/0x140
[aria_aesni_avx_x86_64]
> [ 10.871233] aria_avx_ecb_encrypt+0xd/0x20 [aria_aesni_avx_x86_64]
> [ 10.871912] crypto_skcipher_encrypt+0x3a/0x70 [skcipher]
> [ 10.872527] simd_skcipher_encrypt+0x8f/0xd0 [crypto_simd]
> [ 10.873165] crypto_skcipher_encrypt+0x3a/0x70 [skcipher]
> [ 10.873789] test_skcipher_vec_cfg+0x286/0x6a0 [cryptomgr]
> [ 10.874432] ? number+0x305/0x350
> [ 10.874900] ? skcipher_walk_next+0x524/0x570 [skcipher]
> [ 10.875508] ? string+0x5c/0xe0
> [ 10.875942] ? vsnprintf+0x256/0x4e0
> [ 10.876412] ? vsnprintf+0x385/0x4e0
> [ 10.876878] ? scnprintf+0x46/0x70
> [ 10.877359] ? valid_sg_divisions.constprop.0+0x8a/0xa0 [cryptomgr]
> [ 10.878058] ? valid_testvec_config+0xb7/0xd0 [cryptomgr]
> [ 10.878699] ?
generate_random_testvec_config.constprop.0+0x166/0x370 [cryptomgr]
> [ 10.879496] test_skcipher_vs_generic_impl+0x401/0x610 [cryptomgr]
> [ 10.880194] alg_test_skcipher+0x19d/0x1b0 [cryptomgr]
> [ 10.880805] alg_test.part.0+0x335/0x3b0 [cryptomgr]
> [ 10.881425] ? __schedule+0x274/0xf90
> [ 10.881916] ? ttwu_queue_wakelist+0xf4/0x100
> [ 10.882464] ? _raw_spin_unlock_irqrestore+0xd/0x40
> [ 10.883041] ? try_to_wake_up+0x1f6/0x2d0
> [ 10.883537] ? __pfx_cryptomgr_test+0x10/0x10 [cryptomgr]
> [ 10.884145] alg_test+0x18/0x50 [cryptomgr]
> [ 10.884662] cryptomgr_test+0x24/0x50 [cryptomgr]
> [ 10.885240] kthread+0xe9/0x110
> [ 10.885672] ? __pfx_kthread+0x10/0x10
> [ 10.886144] ret_from_fork+0x2c/0x50
> [ 10.886599] </TASK>
> [ 10.886939] Modules linked in: aria_aesni_avx_x86_64(+)
aria_generic aegis128 aegis128_aesni chacha20poly1305 cmac
camellia_aesni_avx_x86_64 camellia_generic camellia_x86_64 lzo
lzo_compress lzo_decompress cast6_avx_x86_64 cast6_generic
cast5_avx_x86_64 cast5_generic cast_common deflate ccm
serpent_avx_x86_64 serpent_sse2_x86_64 serpent_generic blowfish_generic
blowfish_x86_64 blowfish_common twofish_avx_x86_64 twofish_generic
twofish_x86_64_3way twofish_x86_64 twofish_common xcbc md5 des_generic
libdes xt_CHECKSUM nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack
nf_defrag_ipv6 nf_defrag_ipv4 xfrm_user xfrm_algo xt_tcpudp nft_compat
bridge stp llc nf_tables libcrc32c nfnetlink intel_rapl_msr
intel_rapl_common iosf_mbi kvm_intel kvm irqbypass crc32_generic
crc32_pclmul polyval_clmulni polyval_generic ghash_clmulni_intel
af_packet sha512_ssse3 sha512_generic xctr ghash_generic gf128mul gcm
crypto_null xts ctr sd_mod t10_pi crc64_rocksoft_generic crc64_rocksoft
crc_t10dif cts
> [ 10.886989] crct10dif_generic sr_mod cdrom crct10dif_pclmul crc64
cbc crct10dif_common joydev sg mousedev ppdev bochs drm_vram_helper
drm_ttm_helper aes_generic ttm drm_kms_helper ecb drm
drm_panel_orientation_quirks snd_pcm cfbfillrect cfbimgblt cfbcopyarea
syscopyarea snd_timer sysfillrect aesni_intel sysimgblt snd fb soundcore
psmouse ata_generic virtio_net libaes evdev libcryptoutils crypto_simd
pata_acpi input_leds fbdev cryptd rapl led_class net_failover failover
backlight pcspkr serio_raw ata_piix floppy libata intel_agp i2c_piix4
intel_gtt scsi_mod agpgart rtc_cmos parport_pc i2c_core parport
scsi_common tiny_power_button button qemu_fw_cfg ip_tables x_tables
sha256_ssse3 sha256_generic libsha256 sha1_ssse3 sha1_generic hmac ipv6
autofs4 ext4 crc16 mbcache jbd2 dm_snapshot dm_bufio dm_mod virtio_pci
virtio_pci_legacy_dev virtio_pci_modern_dev virtio_blk virtio_ring
virtio unix crc32c_generic crc32c_intel cryptomgr kpp crypto_acompress
akcipher rng aead crypto_hash skcipher
> [ 10.895975] crypto_algapi crypto
> [ 10.905842] ---[ end trace 0000000000000000 ]---
>
> Cheers,
Thank you so much,
Taehee Yoo