On 12/6/18 11:20 AM, Jerome Glisse wrote: >>> For case 1 you can pre-parse stuff but this can be done by helper library >> How would that work? Would each user/container/whatever do this once? >> Where would they keep the pre-parsed stuff? How do they manage their >> cache if the topology changes? > Short answer i don't expect a cache, i expect that each program will have > a init function that query the topology and update the application codes > accordingly. My concern with having folks do per-program parsing, *and* having a huge amount of data to parse makes it unusable. The largest systems will literally have hundreds of thousands of objects in /sysfs, even in a single directory. That makes readdir() basically impossible, and makes even open() (if you already know the path you want somehow) hard to do fast. I just don't think sysfs (or any filesystem, really) can scale to express large, complicated topologies in a way that any normal program can practically parse it. My suspicion is that we're going to need to have the kernel parse and cache these things. We *might* have the data available in sysfs, but we can't reasonably expect anyone to go parsing it.