DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Singh, Jasvinder" <jasvinder.singh@intel.com>
To: "Avinash ." <avinash.182cs009@nitk.edu.in>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: Gokul Bargaje <gokulbargaje.182009@nitk.edu.in>,
	"Mohit P. Tahiliani" <tahiliani@nitk.edu.in>
Subject: Re: [dpdk-dev] DPDK Enqueue Pipeline
Date: Fri, 28 Feb 2020 13:39:13 +0000	[thread overview]
Message-ID: <BL0PR11MB322049BCC5384861E6B6E2BCE0E80@BL0PR11MB3220.namprd11.prod.outlook.com> (raw)
In-Reply-To: <CAONq4HaW+-PNRiTFRgo1_tRfVUqhGiyzPpTY_i+nDPUzE-dTZA@mail.gmail.com>



> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Avinash .
> Sent: Wednesday, February 26, 2020 10:46 AM
> To: dev@dpdk.org
> Cc: Gokul Bargaje <gokulbargaje.182009@nitk.edu.in>; Mohit P. Tahiliani
> <tahiliani@nitk.edu.in>
> Subject: [dpdk-dev] DPDK Enqueue Pipeline
> 
> Hi all,
> The DPDK QoS scheduler has a 4-stage pipeline for enqueuing the packets.
> This is used for hiding the latency of prefetching the data structures.
> Why is there no pipeline for dequeuing the packets?

The dequeue operation happens in stages that involves scanning bitmap (that contains the active pipes info), followed by extracting information about TC and queue of the pipe that will be considered for scheduling. As a result, the information about pipe TC and queue become
 available but not exposed to the application as this is internal to dequeue operation.

> How does the dequeue function maintain the state of a packet? In other
> words, if I want to backtrace the packet that is dequeued to get the info of
> what was the traffic class and from which queue the packet was dequeued.
> Is there any way to get this.
> 
The QoS dequeue operation is built around multiple grinders (packet crunching engines) that works on different pipes at a time. Each grinder follows the state machine (please have a look at the documentation) which contains multiple stages starting from pipe bitmap scanning, tc and queue detection, fetching the packet from the queue based on the available credits, etc, all this information is kept in internal data structure of the scheduler, and that info can be used to understand the flow or debug the code.  why you want to expose that intermediate info through public API during execution? 


> Regards
> 
> --
> Avinash

  reply	other threads:[~2020-02-28 13:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-26 10:46 Avinash .
2020-02-28 13:39 ` Singh, Jasvinder [this message]
2020-03-03 12:50   ` Avinash .

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BL0PR11MB322049BCC5384861E6B6E2BCE0E80@BL0PR11MB3220.namprd11.prod.outlook.com \
    --to=jasvinder.singh@intel.com \
    --cc=avinash.182cs009@nitk.edu.in \
    --cc=dev@dpdk.org \
    --cc=gokulbargaje.182009@nitk.edu.in \
    --cc=tahiliani@nitk.edu.in \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).