On Fri, May 15, 2020 at 10:22 PM Thomas Monjalon <tho...@monjalon.net> wrote: > > 15/05/2020 18:26, Jerin Jacob: > > On Fri, May 15, 2020 at 8:40 PM Thomas Monjalon <tho...@monjalon.net> wrote: > > > 15/05/2020 15:44, Nithin Dabilpuram: > > > > On Fri, May 15, 2020 at 03:12:59PM +0200, Thomas Monjalon wrote: > > > > > 15/05/2020 12:08, Nithin Dabilpuram: > > > > > > On Thu, May 14, 2020 at 10:29:31PM +0200, Olivier Matz wrote: > > > > > > > I don't see any better approach than having a mbuf flag. However, > > > > > > > I'm > > > > > > > still not fully convinced that a dynamic flag won't do the job. > > > > > > > Taking > > > > > > > 3 additional flags (among 18 remaing) for this feature also means > > > > > > > that > > > > > > > we have 3 flags less for dynamic flags for all applications, even > > > > > > > for > > > > > > > applications that will not use this feature. > > > > > > > > > > > > > > Would it be a problem to use a dynamic flag in this case? > > > > > > Since packet marking feature itself is already part of spec, > > > > > > if we move the flags to PMD specific dynamic flag, then it creates > > > > > > a confusion. > > > > > > > > > > > > It is not the case of a custom feature supported by a specific PMD. > > > > > > I believe when other PMD's implement packet marking, the same flags > > > > > > will > > > > > > suffice. > > > > > > > > > > A dynamic flag is not necessarily PMD-specific. > > > > > It is just avoiding consuming bits if the feature is not used by the > > > > > application. > > > > > We must move more existing flags and fields to be dynamic. > > > > > > > > > > In general, all new flags and fields in mbuf should be dynamic. > > > > > And a work must be done to move existing stuff to free more space > > > > > for more dynamic features. > > > > > > > > My bad, I thought dynamic flags can only be used for PMD specific thing. > > > > > > > > There is however a cost of using dynamic flag which I think should be > > > > avoided > > > > for DPDK spec defined offloads, though it's fine for PMD specific > > > > things. > > > > > > > > Dynamic offload flags causes application and PMD to use non constant > > > > offset > > > > or shift which are looked up at init, instead of having a constant > > > > shift or > > > > offset. This indirection costs some cycles due to extra loads in fast > > > > path. > > > > > > Yes there is a cost. We described it quite clearly last year. > > > The default rule is now to add new flags and fields as dynamic. > > > In case the rule was not clear, I will send a patch to insert some > > > notes in the code and the doc. > > > > Yes. Please send a patch to document the rule. That makes life easy > > for everyone to make a boolean decision. > > Yes, I will work on it.
Thanks. > > > Here is the comment from mbuf: support dynamic fields and flags commit > > when accepted this patch. > > > > " The typical use case is a PMD that registers space for an offload > > feature, when the application requests to enable this feature. As > > the space in mbuf is limited, the space should only be reserved if it > > is going to be used (i.e when the application explicitly asks for it). > > " > > OK, there is probably a documentation gap. Obviously :-) > > > If you are pushing this feature to dynamic mbuf filed then rte_tm > > subsystem needs to register dynamic field > > not the PMD as the feature is part of rte_tm spec. > > Is there a function in rte_tm which initializes or configure the feature? See rte_tm_mark_* > > > > > If you disagree with this new rule, you will have to give very good > > > arguments. > > > > What would the definition of a good argument? as the same logic can be > > implemented with dynamic vs > > static at the cost of dynamic indirection. > > I think the only exception to add a static flag or field is to demonstrate > how basic is the feature. > But I think all basic features are already integrated for years. Yes. That's the path then let have a rule to not add any "new fields" and "flags" to mbuf and everything should be through dynamic. > >