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

Reply via email to