On Thu, 13 Sep 2018 15:32:25 -0700 "prakash.sangappa" <prakash.sangappa@xxxxxxxxxx> wrote: > >> https://marc.info/?t=152524073400001&r=1&w=2 > > It would be really great to give a short summary of the previous > > discussion. E.g. why do we need a proc interface in the first place when > > we already have an API to query for the information you are proposing to > > export [1] > > > > [1] http://lkml.kernel.org/r/20180503085741.GD4535@xxxxxxxxxxxxxx > > The proc interface provides an efficient way to export address range > to numa node id mapping information compared to using the API. > For example, for sparsely populated mappings, if a VMA has large portions > not have any physical pages mapped, the page walk done thru the /proc file > interface can skip over non existent PMDs / ptes. Whereas using the > API the application would have to scan the entire VMA in page size units. > > Also, VMAs having THP pages can have a mix of 4k pages and hugepages. > The page walks would be efficient in scanning and determining if it is > a THP huge page and step over it. Whereas using the API, the application > would not know what page size mapping is used for a given VA and so would > have to again scan the VMA in units of 4k page size. > > If this sounds reasonable, I can add it to the commit / patch description. Preferably with some runtime measurements, please. How much faster is this interface in real-world situations? And why does that performance matter? It would also be useful to see more details on how this info helps operators understand/tune/etc their applications and workloads. In other words, I'm trying to get an understanding of how useful this code might be to our users in general.