On Tue, Nov 27, 2018 at 2:15 AM Anshuman Khandual <anshuman.khandual@xxxxxxx> wrote: > > > > On 11/26/2018 11:38 PM, Dan Williams wrote: > > On Mon, Nov 26, 2018 at 8:42 AM Dave Hansen <dave.hansen@xxxxxxxxx> wrote: > >> > >> On 11/23/18 1:13 PM, Dan Williams wrote: > >>>> A new system call makes total sense to me. I have the same concern > >>>> about the completeness of what's exposed in sysfs, I just don't see a > >>>> _route_ to completeness with sysfs itself. Thus, the minimalist > >>>> approach as a first step. > >>> Outside of platform-firmware-id to Linux-numa-node-id what other > >>> userspace API infrastructure does the kernel need to provide? It seems > >>> userspace enumeration of memory attributes is fully enabled once the > >>> firmware-to-Linux identification is established. > >> > >> It would be nice not to have each app need to know about each specific > >> platform's firmware. > > > > The app wouldn't need to know if it uses a common library. Whether the > > library calls into the kernel or not is an implementation detail. If > > it is information that only the app cares about and the kernel does > > not consume, why have a syscall? > > If we just care about platform-firmware-id <--> Linux-numa-node-id mapping > and fetching memory attribute from the platform (and hiding implementation > details in a library) then the following interface should be sufficient. > > /sys/devices/system/node/nodeX/platform_id > > But as the series proposes (and rightly so) kernel needs to start providing > ABI interfaces for memory attributes instead of hiding them in libraries. Yes, I can get on board with sysfs providing a subset of the performance description for administrators to discover the common case via scripting and leave the exhaustive attribute description to a separate interface. I was pushing back on the notion that sysfs must be that exhaustive interface... we're making progress. I still think we need /sys/devices/system/node/nodeX/platform_id to enable higher order platform enumeration tooling, but that need not be the end of the kernel interface description.