Re: [PATCH v5 08/24] sched: Introduce per memory space current virtual cpu id
From: Peter Zijlstra <peterz@infradead.org>
Date: 2022-11-08 13:05:07
Also in:
lkml
From: Peter Zijlstra <peterz@infradead.org>
Date: 2022-11-08 13:05:07
Also in:
lkml
On Thu, Nov 03, 2022 at 04:03:43PM -0400, Mathieu Desnoyers wrote:
The credit goes to Paul Turner (Google) for the vcpu_id idea. This feature is implemented based on the discussions with Paul Turner and Peter Oskolkov (Google), but I took the liberty to implement scheduler fast-path optimizations and my own NUMA-awareness scheme. The rumor has it that Google have been running a rseq vcpu_id extension internally at Google in production for a year. The tcmalloc source code indeed has comments hinting at a vcpu_id prototype extension to the rseq system call [1].
Re NUMA thing -- that means that on a 512 node system a single threaded task can still observe 512 separate vcpu-ids, right? Also, said space won't be dense. The main selling point of the whole vcpu-id scheme was that the id space is dense and not larger than min(nr_cpus, nr_threads), which then gives useful properties. But I'm not at all seeing how the NUMA thing preserves that. Also; given the utter mind-bendiness of the NUMA thing; should it go into it's own patch; introduce the regular plain old vcpu first, and then add things to it -- that also allows pushing those weird cpumask ops you've created later into the series.