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

Reply via email to