On Mon, Apr 04, 2016 at 05:25:14PM +0900, Kengo NAKAHARA wrote: > > You are right. Hmm..., I'm sorry, I change my objective. I think it could > be better to use pool cache for m_tag itself.
The tags are a mess and I've seen them seriously impact performance in numerous profiles of the network stack. In fact, at a former employer, it was sort of an expected thing: each time we'd experiment with some new feature of the stack (vlan tagging, altq, etc.) we'd see a performance degradation which profiling would revel traced back to the allocation, use, and deallocation of mbuf tags. I would suggest that the only "proper" use of mbuf tags as currently implemented is experimentation. Uses of the tags which have been in the tree for a decade or more should be subsumed into the mbuf datastructure itself, with some care taken to not make it too large, or perhaps a single, "standard" extension structure could be defined to capture the less-common cases. Thor