+ @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.
> 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.
>
>
>
> [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