On Tue, Oct 25, 2016 at 05:24:28PM +0530, Shreyansh Jain wrote:
> On Monday 24 October 2016 09:55 PM, Bruce Richardson wrote:
> > On Mon, Oct 24, 2016 at 04:11:33PM +0000, Wiles, Keith wrote:
> > > 
> > > > On Oct 24, 2016, at 10:49 AM, Morten Br?rup <mb at 
> > > > smartsharesystems.com> wrote:
> > > > 
> > > > First of all: Thanks for a great DPDK Userspace 2016!
> > > > 
> > > > 
> > > > 
> > > > Continuing the Userspace discussion about Olivier Matz?s proposed mbuf 
> > > > changes...
> > 
> > Thanks for keeping the discussion going!
> > > > 
> > > > 
> > > > 
> > > > 1.
> > > > 
> > > > Stephen Hemminger had a noteworthy general comment about keeping 
> > > > metadata for the NIC in the appropriate section of the mbuf: Metadata 
> > > > generated by the NIC?s RX handler belongs in the first cache line, and 
> > > > metadata required by the NIC?s TX handler belongs in the second cache 
> > > > line. This also means that touching the second cache line on ingress 
> > > > should be avoided if possible; and Bruce Richardson mentioned that for 
> > > > this reason m->next was zeroed on free().
> > > > 
> > Thinking about it, I suspect there are more fields we can reset on free
> > to save time on alloc. Refcnt, as discussed below is one of them, but so
> > too could be the nb_segs field and possibly others.
> > 
> > > > 
> > > > 
> > > > 2.
> > > > 
> > > > There seemed to be consensus that the size of m->refcnt should match 
> > > > the size of m->port because a packet could be duplicated on all 
> > > > physical ports for L3 multicast and L2 flooding.
> > > > 
> > > > Furthermore, although a single physical machine (i.e. a single server) 
> > > > with 255 physical ports probably doesn?t exist, it might contain more 
> > > > than 255 virtual machines with a virtual port each, so it makes sense 
> > > > extending these mbuf fields from 8 to 16 bits.
> > > 
> > > 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).
> 
> I am not sure where NXP's NIC came into picture on this, but now that it is
> highlighted, this field is required for libevent implementation [1].
> 
> A scheduler sending an event, which can be a packet, would only have
> information of a flow_id. From this matching it back to a port, without
> mbuf->port, would be very difficult (costly). There may be way around this
> but at least in current proposal I think port would be important to have -
> even if in second cache line.
> 
> But, off the top of my head, as of now it is not being used for any specific
> purpose in NXP's PMD implementation.
> 
> Even the SoC patches don't necessarily rely on it except using it because it
> is available.
> 
> @Bruce: where did you get the NXP context here from?
> 
Oh, I'm just mis-remembering. :-( It was someone else who was looking for
this - Netronome, perhaps?

CC'ing Alejandro in the hope I'm remembering correctly second time
round!

/Bruce

Reply via email to