28/10/2020 11:24, Van Haaren, Harry:
> From: Thomas Monjalon
> > > + IP4_LOOKUP_NODE_PRIV1_OFF(node->ctx) = node_mbuf_priv1_dynfield_offset;
> > 
> > That's interesting.
> > You copy the offset in the node context for better performance.
> > How much is it better than with global offset variable?
> > How much it decreases compared to a static mbuf field?
> 
> Also interested in this topic, I'll offer the logical/theory point of view;
> 
> With a static field, the offset into the mbuf can be encoded in the 
> instruction
> stream, meaning there are no d-cache loads to identify particular dynamic 
> field.
> 
> With a static/global variable, the cache line where the value resides is 
> presumably
> not hot in cache per burst (assuming an application that does significant 
> work, so not
> in cache since last burst). Hence overhead estimate could be 1x cache line 
> load per burst.

Would it help to group all dynfields and dynflags offsets
in the same cache line?



Reply via email to