Hi Jerin,
> -----Original Message----- > From: Jerin Jacob <jerinjac...@gmail.com> > Sent: Wednesday, February 16, 2022 2:25 PM > To: Gujjar, Abhinandan S <abhinandan.guj...@intel.com>; Hemant Agrawal > <hemant.agra...@nxp.com>; Nipun Gupta <nipun.gu...@nxp.com>; Van > Haaren, Harry <harry.van.haa...@intel.com> > Cc: Shijith Thotton <sthot...@marvell.com>; Jerin Jacob Kollanukkaran > <jer...@marvell.com>; dev@dpdk.org > Subject: Re: [PATCH v5] app/eventdev: add crypto producer mode > > + @Van Haaren, Harry > > On Wed, Feb 16, 2022 at 2:14 PM Jerin Jacob <jerinjac...@gmail.com> > wrote: > > > > On Wed, Feb 16, 2022 at 1:19 PM Gujjar, Abhinandan S > > <abhinandan.guj...@intel.com> wrote: > > > > > > Hi Shijith, > > > > > > > -----Original Message----- > > > > From: Shijith Thotton <sthot...@marvell.com> > > > > Sent: Wednesday, February 16, 2022 12:39 PM > > > > To: Gujjar, Abhinandan S <abhinandan.guj...@intel.com> > > > > Cc: Jerin Jacob Kollanukkaran <jer...@marvell.com>; dev@dpdk.org > > > > Subject: RE: [PATCH v5] app/eventdev: add crypto producer mode > > > > > > > > >> > > > > >> In crypto producer mode, producer core enqueues cryptodev with > > > > >> software generated crypto ops and worker core dequeues crypto > > > > >> completion events from the eventdev. Event crypto metadata used > > > > >> for above processing is pre- populated in each crypto session. > > > > >> > > > > >> Parameter --prod_type_cryptodev can be used to enable crypto > > > > >> producer mode. Parameter --crypto_adptr_mode can be set to > > > > >> select the crypto adapter mode, 0 for OP_NEW and 1 for > OP_FORWARD. > > > > >> > > > > >> This mode can be used to measure the performance of crypto > adapter. > > > > >> > > > > >> Example: > > > > >> ./dpdk-test-eventdev -l 0-2 -w <EVENTDEV> -w <CRYPTODEV> -- \ > > > > >> --prod_type_cryptodev --crypto_adptr_mode 1 --test=perf_atq \ > > > > >> --stlist=a --wlcores 1 --plcores 2 > > > > >> > > > > >I still see error with both OP_NEW and OP_FORWARD mode. Can't run > > > > >the > > > > test. > > > > >root@xdp-dev:/home/intel/abhi/dpdk-next-eventdev/abhi# > > > > >./app/dpdk- > > > > test- > > > > >eventdev -l 0-8 -s 0xf0 --vdev=event_sw0 --vdev="crypto_null" -- > > > > >-- prod_type_cryptodev --crypto_adptr_mode 1 --test=perf_queue > > > > >--stlist=a > > > > >-- wlcores 1 --plcores 2 > > > > >EAL: Detected CPU lcores: 96 > > > > >EAL: Detected NUMA nodes: 2 > > > > >EAL: Detected static linkage of DPDK > > > > >EAL: Multi-process socket /var/run/dpdk/rte/mp_socket > > > > >EAL: Selected IOVA mode 'PA' > > > > >EAL: VFIO support initialized > > > > >CRYPTODEV: Creating cryptodev crypto_null > > > > > > > > > >CRYPTODEV: Initialisation parameters - name: crypto_null,socket > > > > >id: 0, max queue > > > > >pairs: 8 > > > > >TELEMETRY: No legacy callbacks, legacy socket not created > > > > > driver : event_sw > > > > > test : perf_queue > > > > > dev : 0 > > > > > verbose_level : 1 > > > > > socket_id : -1 > > > > > pool_sz : 16384 > > > > > main lcore : 0 > > > > > nb_pkts : 67108864 > > > > > nb_timers : 100000000 > > > > > available lcores : {0 1 2 3 8} > > > > > nb_flows : 1024 > > > > > worker deq depth : 16 > > > > > fwd_latency : false > > > > > nb_prod_lcores : 1 > > > > > producer lcores : {2} > > > > > nb_worker_lcores : 1 > > > > > worker lcores : {1} > > > > > nb_stages : 1 > > > > > nb_evdev_ports : 2 > > > > > nb_evdev_queues : 1 > > > > > queue_priority : false > > > > > sched_type_list : {A} > > > > > crypto adapter mode : OP_FORWARD > > > > > nb_cryptodev : 1 > > > > > prod_type : Event crypto adapter producers > > > > > prod_enq_burst_sz : 1 > > > > >CRYPTODEV: elt_size 0 is expanded to 208 > > > > > > > > > >error: perf_event_crypto_adapter_setup() crypto adapter > > > > >OP_FORWARD > > > > mode > > > > >unsupported > > > > > > > > > >error: main() perf_queue: eventdev setup failed > > > > > > > > > > > > > No change from previous version. > > > > Apply the patch "[RFC] app/eventdev: add software crypto adapter > support" > > > > for using SW. > > > I see. Please send out next patchset once you have fix. > > > > + @Van Haaren, Harry (Software Eventdev PMD maintainer), @Hemant > > + Agrawal @Nipun Gupta (NXP PMD) > > > > Summarizing the current situation to make forward progress > > 1) This patch adds support for crypto adapter producers to test the > performance. > > 2) This application change is verified with cnxk PMD. > > 3) When testing with SW driver there is a crash is observed, SW PMD. > > See [1] for more details. > > > > Next steps: > > 1) Generally application changes won't wait for other all drivers to > > pass if there issue with the driver. > > In this case, there is a crash in SW PMD. > > 2) @Gujjar, Abhinandan S Please review the application code, Let me > > know if there is an issue with the application code as comments. We > > can wait up to rc2 time for merging this patch. Sure. I will review it. > > 3) Once SW PMD issue fixes based on @Van Haaren, Harry 's bandwidth > > and we can merge "[RFC] app/eventdev: add software crypto adapter > > support" so that there is no crash from testeventdev. > > 4) @Hemant Agrawal @Nipun Gupta Please check the NXP driver if there > > is interest in this feature. Thanks for connecting all. > > > > > > > > [1] > > Steps to reproduce: > > * Clone http://dpdk.org/git/next/dpdk-next-eventdev > > * Apply [v5] app/eventdev: add crypto producer mode > > git-pw --server https://patches.dpdk.org/api/1.2/ --project dpdk > > patch apply 107645 > > * Apply [RFC] app/eventdev: add software crypto adapter support > > git-pw --server https://patches.dpdk.org/api/1.2/ --project dpdk > > patch apply 107029 > > * meson x86_build_debug -Dc_args='-g -O0' -Ddisable_drivers="*/cnxk" > > * ninja -C x86_build_debug > > * Command to reproduce crash > > sudo ./x86_build_debug/app/dpdk-test-eventdev -l 0-8 -s 0xf0 > > --vdev=event_sw0 --vdev="crypto_null" -- --prod_type_cryptodev > > --crypto_adptr_mode 0 --test=perf_queue --stlist=a --wlcores 1 > > --plcores 2 > > > > Crash log: > > Thread 10 "lcore-worker-7" received signal SIGSEGV, Segmentation fault. > > [Switching to Thread 0x7ffff3767400 (LWP 1342606)] 0x0000555557b02b3c > > in iq_alloc_chunk (sw=0x10057c4c0) at > > ../drivers/event/sw/iq_chunk.h:35 > > 35 sw->chunk_list_head = chunk->next; > > (gdb) bt > > #0 0x0000555557b02b3c in iq_alloc_chunk (sw=0x10057c4c0) at > > ../drivers/event/sw/iq_chunk.h:35 > > #1 iq_enqueue (ev=0x1005af9b0, iq=0x1009e25b8, sw=0x10057c4c0) at > > ../drivers/event/sw/iq_chunk.h:79 > > #2 __pull_port_lb (allow_reorder=0, port_id=2, sw=0x10057c4c0) at > > ../drivers/event/sw/sw_evdev_scheduler.c:443 > > #3 sw_schedule_pull_port_no_reorder (sw=0x10057c4c0, port_id=2) at > > ../drivers/event/sw/sw_evdev_scheduler.c:466 > > #4 0x0000555557b06e81 in sw_event_schedule (dev=0x5555586b3f80 > > <rte_event_devices>) at ../drivers/event/sw/sw_evdev_scheduler.c:538 > > #5 0x0000555557b2edf3 in sw_sched_service_func (args=0x5555586b3f80 > > <rte_event_devices>) at ../drivers/event/sw/sw_evdev.c:938 > > #6 0x0000555555b4f039 in service_runner_do_callback (s=0x1003fe000, > > cs=0x1003eb100, service_idx=0) at ../lib/eal/common/rte_service.c:376 > > #7 0x0000555555b4f107 in service_run (i=0, cs=0x1003eb100, > > service_mask=1, s=0x1003fe000, serialize_mt_unsafe=1) at > > ../lib/eal/common/rte_service.c:407 > > #8 0x0000555555b4f366 in service_runner_func (arg=0x0) at > > ../lib/eal/common/rte_service.c:475 > > #9 0x0000555555b6de0d in eal_thread_loop (arg=0x0) at > > ../lib/eal/linux/eal_thread.c:146 > > #10 0x00007ffff7a0f609 in start_thread (arg=<optimized out>) at > > pthread_create.c:477 > > #11 0x00007ffff7936293 in clone () at > > ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 > > (gdb) list > > 30 > > 31 static __rte_always_inline struct sw_queue_chunk * > > 32 iq_alloc_chunk(struct sw_evdev *sw) > > 33 { > > 34 struct sw_queue_chunk *chunk = sw->chunk_list_head; > > 35 sw->chunk_list_head = chunk->next; > > 36 chunk->next = NULL; > > 37 return chunk; > > 38 } > > 39 > > (gdb) p chunk > > $3 = (struct sw_queue_chunk *) 0x0 > > > > > > > > > > > > Thanks, > > > Abhinandan