From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: Olivier Matz <olivier.matz@6wind.com>
Cc: dev@dpdk.org, "Morten Brørup" <mb@smartsharesystems.com>,
"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
"Richardson, Bruce" <bruce.richardson@intel.com>,
"Wiles, Keith" <keith.wiles@intel.com>
Subject: Re: [dpdk-dev] mbuf changes
Date: Tue, 25 Oct 2016 15:20:01 +0200 [thread overview]
Message-ID: <3276523.JP7xya6XdT@xps13> (raw)
In-Reply-To: <39b70924-0e66-478c-36ea-dd18d27ed8a6@6wind.com>
2016-10-25 15:00, Olivier Matz:
> On 10/25/2016 12:22 PM, Morten Brørup wrote:
> > From: Ananyev, Konstantin
> >> From: Bruce Richardson
> >>> On Mon, Oct 24, 2016 at 11:47:16PM +0200, Morten Brørup wrote:
> >>>> From: Bruce Richardson
> >>>>> On Mon, Oct 24, 2016 at 04:11:33PM +0000, Wiles, Keith wrote:
> >>>>>> I thought we also talked about removing the m->port from the
> >>>>>> mbuf as it is not really needed.
> >>>>>>
> >>>>> Yes, this was mentioned, and also the option of moving the port
> >>>>> value to the second cacheline, but it appears that NXP are using
> >>>>> the port value in their NIC drivers for passing in metadata, so
> >>>>> we'd need their agreement on any move (or removal).
> >>>>>
> >>>> If a single driver instance services multiple ports, so the ports
> >>>> are not polled individually, the m->port member will be required to
> >>>> identify the port.
> >>>> In that case, it might also used elsewhere in the ingress path,
> >>>> and thus appropriate having in the first cache line.
> >>
> >> Ok, but these days most of devices have multiple rx queues.
> >> So identify the RX source properly you need not only port, but
> >> port+queue (at least 3 bytes).
> >> But I suppose better to wait for NXP input here.
> >>
> >>> So yes, this needs further discussion with NXP.
> >
> > It seems that this concept might be somewhat similar to the
> > Flow Director information, which already has plenty of bits
> > in the first cache line. You should consider if this can be
> > somehow folded into the m->hash union.
>
> I'll tend to agree with Morten.
>
> First, I think that having more than 255 virtual links is possible,
> so increasing the port size to 16 bits is not a bad idea.
>
> I think the port information is more useful for a network stack
> than the queue_id, but it may not be the case for all applications.
> On the other hand, the queue_id (or something else providing the same
> level of information) could led in the flow director structure.
>
> Now, the question is: do we really need the port to be inside the mbuf?
> Indeed, the application can already associate a bulk of packet with a
> port id.
>
> The reason why I'll prefer to keep it is because I'm pretty sure that
> some applications use it. At least in the examples/ directory, we can
> find distributor, dpdk_qat, ipv4_multicast, load_balancer,
> packet_ordering. I did not check these apps in detail, but it makes me
> feel that other external applications could make use of the port field.
Having some applications using it does not mean that there is a good
justification to keep it.
I think the data must be stored inside the mbuf struct only if it
increases the performance of known use cases significantly.
So the questions should be:
- How significant are the use cases?
- What is the performance drop when having the data outside of the struct?
The mbuf space must be kept jealously like a DPDK treasure :)
next prev parent reply other threads:[~2016-10-25 13:20 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-24 15:49 Morten Brørup
2016-10-24 16:11 ` Wiles, Keith
2016-10-24 16:25 ` Bruce Richardson
2016-10-24 21:47 ` Morten Brørup
2016-10-25 8:53 ` Bruce Richardson
2016-10-25 10:02 ` Ananyev, Konstantin
2016-10-25 10:22 ` Morten Brørup
2016-10-25 13:00 ` Olivier Matz
2016-10-25 13:04 ` Ramia, Kannan Babu
2016-10-25 13:24 ` Thomas Monjalon
2016-10-25 14:32 ` Ramia, Kannan Babu
2016-10-25 14:54 ` Thomas Monjalon
2016-10-25 13:15 ` Bruce Richardson
2016-10-25 13:20 ` Thomas Monjalon [this message]
2016-10-25 9:39 ` Adrien Mazarguil
2016-10-25 10:11 ` Morten Brørup
2016-10-25 11:04 ` Adrien Mazarguil
2016-10-25 11:13 ` Bruce Richardson
2016-10-25 12:16 ` Morten Brørup
2016-10-25 12:20 ` Bruce Richardson
2016-10-25 12:33 ` Morten Brørup
2016-10-25 12:45 ` Bruce Richardson
2016-10-25 12:48 ` Olivier Matz
2016-10-25 13:13 ` Morten Brørup
2016-10-25 13:38 ` Ananyev, Konstantin
2016-10-25 14:25 ` Morten Brørup
2016-10-25 14:45 ` Olivier Matz
2016-10-28 13:34 ` Pattan, Reshma
2016-10-28 14:11 ` Morten Brørup
2016-10-28 15:25 ` Pattan, Reshma
2016-10-28 16:50 ` Adrien Mazarguil
2016-10-28 17:00 ` Richardson, Bruce
2016-10-28 20:27 ` Morten Brørup
2016-10-31 10:55 ` Morten Brørup
2016-10-31 16:05 ` Morten Brørup
2016-10-25 13:48 ` Adrien Mazarguil
2016-10-25 13:58 ` Ananyev, Konstantin
2016-10-25 11:54 ` Shreyansh Jain
2016-10-25 12:05 ` Bruce Richardson
2016-10-26 8:28 ` Alejandro Lucero
2016-10-26 9:01 ` Morten Brørup
2016-11-09 11:42 ` Alejandro Lucero
2016-11-10 9:19 ` [dpdk-dev] Fwd: " Alejandro Lucero
2016-10-25 12:49 ` [dpdk-dev] " Morten Brørup
2016-10-25 13:14 ` Olivier Matz
2016-10-25 13:18 ` Morten Brørup
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=3276523.JP7xya6XdT@xps13 \
--to=thomas.monjalon@6wind.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=keith.wiles@intel.com \
--cc=konstantin.ananyev@intel.com \
--cc=mb@smartsharesystems.com \
--cc=olivier.matz@6wind.com \
/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).