[PATCH v5] app/eventdev: add crypto producer mode
Gujjar, Abhinandan S
abhinandan.gujjar at intel.com
Thu Feb 17 06:33:52 CET 2022
Hi Jerin,
> -----Original Message-----
> From: Jerin Jacob <jerinjacobk at gmail.com>
> Sent: Wednesday, February 16, 2022 2:25 PM
> To: Gujjar, Abhinandan S <abhinandan.gujjar at intel.com>; Hemant Agrawal
> <hemant.agrawal at nxp.com>; Nipun Gupta <nipun.gupta at nxp.com>; Van
> Haaren, Harry <harry.van.haaren at intel.com>
> Cc: Shijith Thotton <sthotton at marvell.com>; Jerin Jacob Kollanukkaran
> <jerinj at marvell.com>; dev at 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 <jerinjacobk at gmail.com>
> wrote:
> >
> > On Wed, Feb 16, 2022 at 1:19 PM Gujjar, Abhinandan S
> > <abhinandan.gujjar at intel.com> wrote:
> > >
> > > Hi Shijith,
> > >
> > > > -----Original Message-----
> > > > From: Shijith Thotton <sthotton at marvell.com>
> > > > Sent: Wednesday, February 16, 2022 12:39 PM
> > > > To: Gujjar, Abhinandan S <abhinandan.gujjar at intel.com>
> > > > Cc: Jerin Jacob Kollanukkaran <jerinj at marvell.com>; dev at 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 at 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
More information about the dev
mailing list