On Fri, 10 Jul 2015 10:32:17 +0100 Bruce Richardson <bruce.richardson at intel.com> wrote:
> On Thu, Jul 09, 2015 at 04:37:48PM -0700, Stephen Hemminger wrote: > > From: Stephen Hemminger <shemming at brocade.com> > > > > For applications that use m->userdata the initialization can > > be a signficant (10%) performance penalty. > > > > Rather than taking the cache penalty of initializing userdata > > in the receive handling, do it in the place where mbuf is > > already cache hot and being setup. > > Should the management of the userdata field not be the responsibility of the > app itself, rather than having the PMD manage it? If the PMD does manage the > userdata field, I would suggest taking the approach of having the field > cleared > by the mbuf library on free, rather than on RX. The problem with that is m->userdata is that when the application gets the mbuf, touching the userdata field causes false cache sharing and we see a significant performance drop. Internally the userdata field is only used for few special cases and 0/NULL is used to indicate that no metadata is present.