From bdb1b222cdd9220b5804d8ee571a097f8a69a6a6 Mon Sep 17 00:00:00 2001 From: Michael Mueller Date: Thu, 6 Oct 2022 16:08:00 +0200 Subject: [PATCH] Store NUMA node for memory descriptors in HIP. --- repos/base-nova/include/nova/syscall-generic.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/repos/base-nova/include/nova/syscall-generic.h b/repos/base-nova/include/nova/syscall-generic.h index 1692e5aa84..5b9b5d94ad 100644 --- a/repos/base-nova/include/nova/syscall-generic.h +++ b/repos/base-nova/include/nova/syscall-generic.h @@ -108,6 +108,7 @@ namespace Nova { uint64_t const size; Type const type; uint32_t const aux; + uint32_t const domain; }; uint32_t const signature; /* magic value 0x41564f4e */ @@ -143,6 +144,7 @@ namespace Nova { uint8_t platform:3; uint8_t reserved:1; uint32_t patch; + uint8_t numa_id; } __attribute__((packed)); unsigned cpu_max() const { @@ -175,7 +177,7 @@ namespace Nova { /** * Map kernel cpu ids to virtual cpu ids. */ - bool remap_cpu_ids(uint8_t *map_cpus, unsigned const boot_cpu) const { + bool remap_cpu_ids(uint8_t *map_cpus, uint8_t *cpu_numa_map, unsigned const boot_cpu) const { unsigned const num_cpus = cpus(); unsigned cpu_i = 0; @@ -205,6 +207,7 @@ namespace Nova { continue; map_cpus[cpu_i++] = (uint8_t)i; + cpu_numa_map[cpu_i++] = c->numa_id; if (cpu_i >= num_cpus) return true; }