Bug 1282

Summary: [openssl] dpdk-test-crypto-perf got stuck for multiple segments
Product: DPDK Reporter: Salaheddin Badawi (sbadawi)
Component: cryptodevAssignee: dev
Status: UNCONFIRMED ---    
Severity: normal    
Priority: Normal    
Version: unspecified   
Target Milestone: ---   
Hardware: x86   
OS: Linux   
Attachments: test_aes_gcm.data file

Description Salaheddin Badawi 2023-09-05 11:02:32 CEST
Created attachment 260 [details]
test_aes_gcm.data file

dpdk-test-crypto-perf got stuck when using openssl driver with multiple segments.


To repro the issue, follow the steps below:

* To run the app, use the following command:

/download/dpdk/install/bin/dpdk-test-crypto-perf -c 0x7fff --vdev crypto_openssl,max_nb_queue_pairs=14 --  --ptest pmd-cyclecount --aead-op encrypt --optype aead --aead-algo aes-gcm --test-file /tmp/test_aes_gcm.data --test-name gcm --total-ops 837134 --aead-key-sz 32 --aead-iv-sz 12 --aead-aad-sz 334 --buffer-sz 256 --burst-sz 32 --digest-sz 16 --segment-sz 32 --devtype crypto_openssl --silent --csv-friendly

startup log:


EAL: Detected CPU lcores: 16
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
CRYPTODEV: Creating cryptodev crypto_openssl
CRYPTODEV: Initialisation parameters - name: crypto_openssl,socket id: 0, max queue pairs: 14
Allocated pool "sess_mp_0" on socket 0

and the app got stuck.

 

While for mlx driver:

app command:

/download/dpdk/install/bin/dpdk-test-crypto-perf -c 0x7fff -a 0000:03:00.0,class=crypto,algo=1 --  --ptest pmd-cyclecount --aead-op encrypt --optype aead --aead-algo aes-gcm --test-file /tmp/test_aes_gcm.data --test-name gcm --total-ops 837134 --aead-key-sz 32 --aead-iv-sz 12 --aead-aad-sz 334 --buffer-sz 256 --burst-sz 32 --digest-sz 16 --segment-sz 32 --devtype mlx5_pci --silent --csv-friendly
startup log:

EAL: Detected CPU lcores: 16
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: Probe PCI driver: mlx5_pci (15b3:a2dc) device: 0000:03:00.0 (socket -1)
CRYPTODEV: Creating cryptodev mlx5_0
CRYPTODEV: Initialisation parameters - name: mlx5_0,socket id: -1, max queue pairs: 8
Allocated pool "sess_mp_0" on socket 0
# lcore id,Buf Size,Burst Size,Enqueued,Dequeued,Enq Retries,Deq Retries,Cycles/Op,Cycles/Enq,Cycles/Deq
         2,       256,32,837134,837134,0,533741119,4.285,132.728,3266.640
         5,       256,32,837134,837134,0,474591992,4.187,131.554,3267.847
         1,       256,32,837134,837134,0,534222454,4.188,132.515,3267.158
        14,       256,32,837134,837134,0,534253999,4.290,134.163,3266.250
         8,       256,32,837134,837134,0,533930935,4.183,131.477,3268.442
        10,       256,32,837134,837134,0,530621045,4.270,138.768,3261.594
         7,       256,32,837134,837134,0,533981498,4.198,137.662,3263.727
         3,       256,32,837134,837134,0,534203541,4.285,140.712,3258.738
         9,       256,32,837134,837134,0,532553766,4.433,135.760,3262.361
         4,       256,32,837134,837134,0,532835430,4.189,136.872,3263.587
        11,       256,32,837134,837134,0,535932003,4.186,133.716,3265.873
        12,       256,32,837134,837134,0,532764050,4.320,144.503,3254.523
        13,       256,32,837134,837134,0,532940094,4.262,134.450,3264.728
         6,       256,32,837134,837134,0,2301821,4.278,109.988,14.931
 

and it works fine when using a single segment with openssl driver:

app command:

/download/dpdk/install/bin/dpdk-test-crypto-perf -c 0x7fff --vdev crypto_openssl,max_nb_queue_pairs=14 --  --ptest pmd-cyclecount --aead-op encrypt --optype aead --aead-algo aes-gcm --test-file /tmp/test_aes_gcm.data --test-name gcm --total-ops 837134 --aead-key-sz 32 --aead-iv-sz 12 --aead-aad-sz 334 --buffer-sz 256 --burst-sz 32 --digest-sz 16 --segment-sz 272 --devtype crypto_openssl --silent --csv-friendly--silent 
startup log:

EAL: Detected CPU lcores: 16
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
CRYPTODEV: Creating cryptodev crypto_openssl
CRYPTODEV: Initialisation parameters - name: crypto_openssl,socket id: 0, max queue pairs: 14
Allocated pool "sess_mp_0" on socket 0
# lcore id,Buf Size,Burst Size,Enqueued,Dequeued,Enq Retries,Deq Retries,Cycles/Op,Cycles/Enq,Cycles/Deq
        14,       256,32,837134,837134,408,0,2.392,753.011,1.399
        13,       256,32,837134,837134,408,0,2.380,805.099,1.418
        12,       256,32,837134,837134,408,0,2.403,805.045,1.371
         9,       256,32,837134,837134,408,0,2.394,805.847,1.357
         8,       256,32,837134,837134,408,0,2.393,809.166,1.392
         4,       256,32,837134,837134,408,0,2.389,816.142,1.320
         5,       256,32,837134,837134,408,0,2.391,816.663,1.231
         2,       256,32,837134,837134,408,0,2.398,816.880,1.277
         3,       256,32,837134,837134,408,0,2.389,816.715,1.429
         6,       256,32,837134,837134,408,0,2.380,817.423,1.309
         7,       256,32,837134,837134,408,0,2.387,823.006,1.506
        10,       256,32,837134,837134,408,0,2.397,838.132,1.375
        11,       256,32,837134,837134,408,0,2.387,847.972,1.412
         1,       256,32,837134,837134,408,0,2.381,227.413,0.590