> > On Tue, Nov 08, 2022 at 04:51:11PM +0100, Thomas Monjalon wrote: > > 08/11/2022 15:30, Morten Brørup: > > > > From: Thomas Monjalon [mailto:tho...@monjalon.net] > > > > 08/11/2022 12:25, Morten Brørup: > > > > > From: Morten Brørup > > > > > > From: Konstantin Ananyev [mailto:konstantin.anan...@huawei.com] > > > > > > Sent: Tuesday, 8 November 2022 10.20 > > > > > > > +#ifdef RTE_LIBRTE_MEMPOOL_STATS > > > > > > > +#define RTE_MEMPOOL_CACHE_STAT_ADD(cache, name, n) (cache)- > > > > >stats.name += n > > > > > > > > > > > > As Andrew already pointed, it needs to be: ((cache)->stats.name += > > > > (n)) > > > > > > Apart from that, LGTM. > > > > > > Series-Acked-by: Konstantin Ananyev <konstantin.anan...@huawei.com> > > > > > > > > > > @Thomas, this series should be ready to apply... it now has been: > > > > > Reviewed-by: (mempool maintainer) Andrew Rybchenko > > > > <andrew.rybche...@oktetlabs.ru> > > > > > Reviewed-By: Mattias Rönnblom <mattias.ronnb...@ericsson.com> > > > > > Acked-by: Konstantin Ananyev <konstantin.anan...@huawei.com> > > > > > > > > Being acked does not mean it is good to apply in -rc3. > > > > > > I understand that the RFC/v1 of this series was formally too late to make > > > it in 22.11, so I will not complain loudly if you choose to > omit it for 22.11. > > > > > > With two independent reviews, including from a mempool maintainer, I > > > still have some hope. Also considering the risk assessment > below. ;-) > > > > > > > Please tell what is the benefit for 22.11 (before/after and condition). > > > > > > Short version: With this series, mempool statistics can be used in > > > production. Without it, the performance cost > (mempool_perf_autotest: -74 %) is prohibitive! > > > > > > Long version: > > > > > > The patch series provides significantly higher performance for mempool > > > statistics, which are readable through > rte_mempool_dump(FILE *f, struct rte_mempool *mp). > > > > > > Without this series, you have to set RTE_LIBRTE_MEMPOOL_DEBUG at build > > > time to get mempool statistics. > RTE_LIBRTE_MEMPOOL_DEBUG also enables protective cookies before and after > each mempool object, which are all verified on > get/put from the mempool. According to mempool_perf_autotest, the performance > cost of mempool statistics (by setting > RTE_LIBRTE_MEMPOOL_DEBUG) is a 74 % decrease in rate_persec for mempools with > cache (i.e. mbuf pools). Prohibitive for use in > production! > > > > > > With this series, the performance cost of mempool statistics (by setting > > > RTE_LIBRTE_MEMPOOL_STATS) in > mempool_perf_autotest is only 6.7 %, so mempool statistics can be used in > production. > > > > > > > Note there is a real risk doing such change that late. > > > > > > Risk assessment: > > > > > > The patch series has zero effect unless either RTE_LIBRTE_MEMPOOL_DEBUG > > > or RTE_LIBRTE_MEMPOOL_STATS are set when > building. They are not set in the default build. > > > > If theses build flags are not set, there is no risk and no benefit. > > But if they are set, there is a risk of regression, > > for the benefit of an increased performance of a debug feature. > > I would say it is better to avoid any functional regression in a debug > > feature > > at this stage. > > Any other opinion? > > > While I agree that we should avoid any functional regression, I wonder how > widely used the debug feature is, and how big the risk of a regression is? > Even if there is one, having a regression in a debug feature is a lot less > serious than having one in something which goes into production. >
Unless it introduces an ABI breakage (as I understand it doesn't), I'll wait till 23.03. Just in case. BTW, as a side thought - if the impact is really that small now, would it make sense to make it run-time option, instead of compile-time one? Konstantin