Re: [RFC PATCH v2 09/11] sched: Introduce per memory space current virtual cpu id
From: Jonathan Corbet <corbet@lwn.net>
Date: 2022-02-25 17:35:35
Also in:
lkml
From: Jonathan Corbet <corbet@lwn.net>
Date: 2022-02-25 17:35:35
Also in:
lkml
Mathieu Desnoyers [off-list ref] writes:
This feature allows the scheduler to expose a current virtual cpu id to user-space. This virtual cpu id is within the possible cpus range, and is temporarily (and uniquely) assigned while threads are actively running within a memory space. If a memory space has fewer threads than cores, or is limited to run on few cores concurrently through sched affinity or cgroup cpusets, the virtual cpu ids will be values close to 0, thus allowing efficient use of user-space memory for per-cpu data structures.
So I have one possibly (probably) dumb question: if I'm writing a program to make use of virtual CPU IDs, how do I know what the maximum ID will be? It seems like one of the advantages of this mechanism would be not having to be prepared for anything in the physical ID space, but is there any guarantee that the virtual-ID space will be smaller? Something like "no larger than the number of threads", say? Thanks, jon