[PATCH v4 0/9] Limit usage of internal API in tests
David Marchand
david.marchand at redhat.com
Wed Sep 30 09:32:20 CEST 2026
On Tue, 29 Sept 2026 at 21:50, Stephen Hemminger
<stephen at networkplumber.org> wrote:
>
> On Tue, 22 Sep 2026 11:40:16 +0200
> David Marchand <david.marchand at redhat.com> wrote:
>
> > We had a few bug reports related to internal (and experimental) symbols
> > issues during 26.07 development.
> > See for example https://bugs.dpdk.org/show_bug.cgi?id=1957 or more
> > recently https://bugs.dpdk.org/show_bug.cgi?id=1967.
> >
> > To catch such issues earlier in the CI, this series proposes to run
> > the unit tests through meson with the ABI reference unit test binary
> > against the current ABI libraries and drivers.
> >
> > For this to work, some unit tests must be skipped (since meson may
> > invoke the ABI reference code with tests that were unknown at the time).
> >
> > A few unit tests were directly dereferencing internal structures and are
> > reworked so they use public APIs.
> >
> > Additionally, unit tests were allowed to use any internal API which has
> > hidden a few issues (like a public API backed by internal symbols in the
> > hash library).
> > So disable the global ALLLOW_INTERNAL_API and move it to code explicitly
> > requiring internal API, with the hope it will push us to have better API.
>
>
> I think this causing breakage with minsize build. It is not correct to use
> __rte_internal on inline helper functions in header file. I checked and only
> thash has that anti-pattern.
>
>
> In file included from ../lib/hash/rte_thash_gfni.h:13,
> from ../lib/hash/rte_thash.h:23,
> from ../app/test/test_thash_perf.c:13:
> In function ‘rte_thash_gfni’,
> inlined from ‘run_rss_calc’ at ../app/test/test_thash_perf.c:58:13:
> ../lib/hash/rte_thash_x86_gfni.h:181:27: error: call to ‘__rte_thash_gfni’ declared with attribute error: Symbol is not public ABI
> 181 | __m512i xor_acc = __rte_thash_gfni(m, tuple, NULL, len);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In function ‘rte_thash_gfni_bulk’,
> inlined from ‘run_rss_calc_bulk’ at ../app/test/test_thash_perf.c:79:3,
> inlined from ‘run_thash_test’ at ../app/test/test_thash_perf.c:122:13:
> ../lib/hash/rte_thash_x86_gfni.h:213:27: error: call to ‘__rte_thash_gfni’ declared with attribute error: Symbol is not public ABI
> 213 | xor_acc = __rte_thash_gfni(mtrx, tuple[i], tuple[i + 1], len);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
Indeed.
I had disabled minsize builds some time (well, months) ago and forgot
to re-enable them.
I'll send a fix soon.
--
David Marchand
More information about the dev
mailing list