[AMD Official Use Only - General] Hi David,
Please find the below update - only one DPDK application can use ccp crypto engines (PCI bus allow/blocklist is not respected, right?), Yes, only one crypto device can be used in a DPDK application for the crypto operations. This is introduced from the patch crypto/ccp: convert driver from vdev to PCI. This is implemented as per community suggestion. - since only one crypto device is exposed, there is no way for the application to dedicate/decide how to distribute crypto operations over the different ccp crypto engines available on the system. When there is no ccp device passed from the application dpdk-test-crypto-perf, it tries to probe all CCP devices present on a system and only one device can be used. It seems this is bug in the patch implemented for crypto/ccp: convert driver from vdev to PCI and we are looking into this. Thanks Sunil -----Original Message----- From: David Marchand <david.march...@redhat.com> Sent: Thursday, November 3, 2022 6:39 PM To: Uttarwar, Sunil Prakashrao <sunilprakashrao.uttar...@amd.com> Cc: Yigit, Ferruh <ferruh.yi...@amd.com>; Akhil Goyal <gak...@marvell.com>; Namburu, Chandu-babu <cha...@amd.com>; Sebastian, Selwin <selwin.sebast...@amd.com>; dev <dev@dpdk.org>; Thomas Monjalon <tho...@monjalon.net> Subject: Re: [PATCH v2 0/4] crypto/ccp cleanup Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. Hello, On Wed, Nov 2, 2022 at 2:54 PM Uttarwar, Sunil Prakashrao <sunilprakashrao.uttar...@amd.com> wrote: > > [AMD Official Use Only - General] > > Hi David, > > Please find below response. Not sure why dev@ was dropped. Adding it back. > > -----Original Message----- > From: David Marchand <david.march...@redhat.com> > Sent: Wednesday, November 2, 2022 6:18 PM > To: Uttarwar, Sunil Prakashrao <sunilprakashrao.uttar...@amd.com> > Cc: Yigit, Ferruh <ferruh.yi...@amd.com>; Akhil Goyal > <gak...@marvell.com>; Namburu, Chandu-babu <cha...@amd.com> > Subject: Re: [PATCH v2 0/4] crypto/ccp cleanup > > Caution: This message originated from an External Source. Use proper caution > when opening attachments, clicking links, or responding. > > > Hello, > > On Wed, Nov 2, 2022 at 11:26 AM Uttarwar, Sunil Prakashrao > <sunilprakashrao.uttar...@amd.com> wrote: > > As mentioned earlier, observing issues with "crypto/ccp: fix PCI probing" > > patch (Floating point exception). Please find the below backtrace . > > > > (gdb) r -l 0,4 -n 4 -- --ptest throughput --buffer-sz 64 --burst-sz > > 32 --total-ops 3000 --silent --devtype crypto_ccp --optype > > cipher-only --cipher-algo aes-cbc --cipher-op encrypt > > --cipher-key-sz 16 --cipher-iv-sz 16 Starting program: > > /home/cae/sunil/dpdk_main/dpdk/build/app/dpdk-test-crypto-perf -l 0,4 -n 4 > > -- --ptest throughput --buffer-sz 64 --burst-sz 32 --total-ops 3000 > > --silent --devtype crypto_ccp --optype cipher-only --cipher-algo aes-cbc > > --cipher-op encrypt --cipher-key-sz 16 --cipher-iv-sz 16 [Thread debugging > > using libthread_db enabled] Using host libthread_db library > > "/lib/x86_64-linux-gnu/libthread_db.so.1". > > EAL: Detected CPU lcores: 24 > > EAL: Detected NUMA nodes: 2 > > EAL: Detected static linkage of DPDK [New Thread 0x7ffff6dc5400 (LWP > > 171350)] > > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket [New Thread > > 0x7ffff65c4400 (LWP 171351)] > > EAL: Selected IOVA mode 'PA' > > EAL: VFIO support initialized > > [New Thread 0x7ffff5dc3400 (LWP 171352)] > > EAL: Probe PCI driver: crypto_ccp (1022:1456) device: 0000:04:00.2 > > (socket 0) > > PMD: Initialising 0000:04:00.2 on NUMA node 0 > > PMD: Max number of queue pairs = 8 > > PMD: Authentication offload to CCP > > CRYPTODEV: User specified device name = 0000:04:00.2 > > CRYPTODEV: Creating cryptodev 0000:04:00.2 > > CRYPTODEV: Initialisation parameters - name: 0000:04:00.2,socket id: > > 0, max queue pairs: 8 > > EAL: Probe PCI driver: crypto_ccp (1022:1468) device: 0000:05:00.1 > > (socket 0) > > PMD: CCP PMD already initialized > > EAL: Requested device 0000:05:00.1 cannot be used > > EAL: Probe PCI driver: crypto_ccp (1022:1456) device: 0000:41:00.2 > > (socket 1) > > PMD: CCP PMD already initialized > > EAL: Requested device 0000:41:00.2 cannot be used > > EAL: Probe PCI driver: crypto_ccp (1022:1468) device: 0000:42:00.1 > > (socket 1) > > PMD: CCP PMD already initialized > > EAL: Requested device 0000:42:00.1 cannot be used [New Thread > > 0x7ffff55c2400 (LWP 171353)] > > TELEMETRY: No legacy callbacks, legacy socket not created Allocated > > pool "sess_mp_0" on socket 0 > > > > Thread 4 "rte-worker-4" received signal SIGFPE, Arithmetic exception. > > [Switching to Thread 0x7ffff5dc3400 (LWP 171352)] 0x000055555767397a > > in ccp_pmd_enqueue_burst (queue_pair=0x17fefe940, ops=0x7ffff5dbe6e0, > > nb_ops=32) at ../drivers/crypto/ccp/rte_ccp_pmd.c:97 > > 97 cur_ops = nb_ops / cryptodev_cnt + > > (nb_ops)%cryptodev_cnt; > > (gdb) bt > > I have a hard time understanding the logic in this enqueue code... > > Is this driver exposing a single crypto device and will "balance" > crypto operations across all pci devices on the system? > > Driver is exposing a single crypto device as physical device and only one > device can be used by the driver for single instance for all operations. > Afaik, this is the only crypto driver that implements this. I see two issues with the approach. - only one DPDK application can use ccp crypto engines (PCI bus allow/blocklist is not respected, right?), - since only one crypto device is exposed, there is no way for the application to dedicate/decide how to distribute crypto operations over the different ccp crypto engines available on the system. -- David Marchand