Re: [RFC PATCH 00/14] Heterogeneous Memory System (HMS) and hbind()

From: Dave Hansen
Date: Thu Dec 06 2018 - 14:31:26 EST


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.