On Tue, 2 Apr 2019 23:03:06 +0200 David Marchand <david.march...@redhat.com> wrote:
> On Tue, Apr 2, 2019 at 10:48 PM Stephen Hemminger < > step...@networkplumber.org> wrote: > > > On Tue, 2 Apr 2019 22:15:40 +0200 > > David Marchand <david.march...@redhat.com> wrote: > > > > > On Tue, Apr 2, 2019 at 5:57 PM Stephen Hemminger < > > step...@networkplumber.org> > > > wrote: > > > > > > > C language does not really treat enum's as first class symbols. > > > > The values in an enum live in a global namespace. That means if > > > > DPDK defines "RUNNING" it can't be used by another enum in an > > > > application using DPDK. > > > > > > > > To solve this add a prefix "RTE_LCORE_" to the enum values, and > > > > make them grammatically consistent. > > > > > > > > > > Well, I understand this is not clean, but this patch breaks the API. > > > > The lcore state was marked as internal in the header file, code that > > ignores that is going to have problems. The values are the same. > > > > We could defer this to 19.11 (next LTS) since it is cosmetic. > > > > We must announce it before changing. I disagree, if an API is marked as internal it can be changed at any time (as long as ABI is maintained). > > > At that time, I am willing to do more work to make lcore_config hidden; > > ie no inline's to access it. > > > > Ah I was looking at that, to see if we could at least shoot the direct > accesses by calling the existing API. > I can see we are missing one wrapper for the cpu id... > > And there are quite some odds things in with cpu affinity in dpaa: > drivers/bus/dpaa/dpaa_bus.c: cpu = lcore_config[lcore].core_id; > drivers/bus/dpaa/dpaa_bus.c: > &lcore_config[lcore].cpuset); > drivers/bus/fslmc/portal/dpaa2_hw_dpio.c: if > (CPU_ISSET(i, &lcore_config[lcore_id].cpuset)) { > > Drivers have no API/ABI restriction, it is only user code.