`qemu` doesn't support NUMA-aware scheduling
- Dominant language
- Go
- Stars
- 17k
- Forks
- 2.1k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 105
Description
As noted in https://github.com/hashicorp/nomad/pull/19089, the `qemu` driver uses our universal executor to run the QEMU command line tool. Because QEMU owns the resource isolation, we don't pass in the resource block that the universal executor uses to configure cgroups and core pinning. This prevents NUMA-aware scheduling from working properly for the `qemu` driver (as of the Nomad 1.7.0 beta).
We currently support `cores` by mapping that to a `-smp` flag. It looks like QEMU supports NUMA-awareness with the `-numa` flag, so we should be able to map Nomad's NUMA-aware scheduling to the appropriate flags too.
Ref: https://hashicorp.atlassian.net/browse/NET-10928
Contributor guide
No contributing guide indexed for this repository
Research direction
Locate the qemu driver and its use of the universal executor, then trace how Nomad's cores setting is mapped to QEMU's -smp flag. Determine the corresponding NUMA-aware scheduling inputs and verify that they are mapped to appropriate -numa flags without relying on the executor's cgroup or core-pinning resource block.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100