Thanks Marko, I will spin v5 with the changes asap. Note: Just wondering why 'devtools/checkpatches.sh' did not report any error.
Thanks Vipin Varghese > -----Original Message----- > From: Kovacevic, Marko > Sent: Friday, January 18, 2019 8:59 PM > To: Varghese, Vipin <vipin.vargh...@intel.com>; dev@dpdk.org; > shreyansh.j...@nxp.com; tho...@monjalon.net > Cc: Mcnamara, John <john.mcnam...@intel.com>; Patel, Amol > <amol.pa...@intel.com>; Padubidri, Sanjay A <sanjay.padubi...@intel.com> > Subject: RE: [PATCH v4 2/2] doc: add guide for debug and troubleshoot > > After checking the patch again I found a few spelling mistakes > > > Add user guide on debug and troubleshoot for common issues and > > bottleneck found in sample application model. > > > > Signed-off-by: Vipin Varghese <vipin.vargh...@intel.com> > > Acked-by: Marko Kovacevic <marko.kovace...@intel.com> > > --- > > doc/guides/howto/debug_troubleshoot_guide.rst | 375 > > ++++++++++++++++++ > > doc/guides/howto/index.rst | 1 + > > 2 files changed, 376 insertions(+) > > create mode 100644 doc/guides/howto/debug_troubleshoot_guide.rst > > > > <...> > > receieve / receive > > > + - If stats for RX and drops updated on same queue? check > > + receieve > > thread > > + - If packet does not reach PMD? check if offload for port and queue > > + matches to traffic pattern send. > > + > > <...> > > Offlaod/ offload > > > + - Is the packet multi segmented? Check if port and queue offlaod is > > set. > > + > > +Are there object drops in producer point for ring? > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > <...> > > sufficent / sufficient > > > + - Are drops on specific socket? If yes check if there are sufficent > > + objects by rte_mempool_get_count() or rte_mempool_avail_count() > > + - Is 'rte_mempool_get_count() or rte_mempool_avail_count()' zero? > > + application requires more objects hence reconfigure number of > > + elements in rte_mempool_create(). > > + - Is there single RX thread for multiple NIC? try having multiple > > + lcore to read from fixed interface or we might be hitting cache > > + limit, so increase cache_size for pool_create(). > > + > > Sceanrios/ scenarios > > > +#. Is performance low for some sceanrios? > > + - Check if sufficient objects in mempool by rte_mempool_avail_count() > > + - Is failure seen in some packets? we might be getting packets with > > + 'size > mbuf data size'. > > + - Is NIC offload or application handling multi segment mbuf? check the > > + special packets are continuous with rte_pktmbuf_is_contiguous(). > > + - If there separate user threads used to access mempool objects, use > > + rte_mempool_cache_create() for non DPDK threads. > > debuging / debugging > > > + - Is the error reproducible with 1GB hugepage? If no, then try > > debuging > > + the issue with lookup table or objects with rte_mem_lock_page(). > > + > > +.. note:: > > + Stall in release of MBUF can be because > > <...> > > softwre / software > > > + - If softwre crypto is in use, check if the CRYPTO Library is build > > with > > + right (SIMD) flags or check if the queue pair using CPU ISA for > > + feature_flags AVX|SSE|NEON using rte_cryptodev_info_get() > > Assited/ assisted > > > + - If its hardware assited crypto showing performance variance? Check > > if > > + hardware is on same NUMA socket as queue pair and session pool. > > + > > <...> > > exceeeding / exceeding > > > + core? registered functions may be exceeeding the desired time slots > > + while running on same service core. > > + - Is function is running on RTE core? check if there are conflicting > > + functions running on same CPU core by rte_thread_get_affinity(). > > + > > <...> > > > +#. Where to capture packets? > > + - Enable pdump in primary to allow secondary to access queue-pair for > > + ports. Thus packets are copied over in RX|TX callback by secondary > > + process using ring buffers. > > + - To capture packet in middle of pipeline stage, user specific hooks > > + or callback are to be used to copy the packets. These packets > > +can > > secodnary / secondary > > > + be shared to secodnary process via user defined custom rings. > > + > > +Issue still persists? > > +~~~~~~~~~~~~~~~~~~~~~ > > + > > +#. Are there custom or vendor specific offload meta data? > > + - From PMD, then check for META data error and drops. > > + - From application, then check for META data error and drops. > > +#. Is multiprocess is used configuration and data processing? > > + - Check enabling or disabling features from secondary is > > +supported or > > not? > > Obejcts/ objects > > > +#. Is there drops for certain scenario for packets or obejcts? > > + - Check user private data in objects by dumping the details for debug. > > + > <...> > > Thanks, > Marko K