originated from Weixi's PhD study with
Prof. Scott Rixner and Prof. Alan L. Cox at Rice University.
[1] https://arxiv.org/abs/2310.12554.
Weixi Zhu (6):
mm/gmem: add heterogeneous NUMA node
mm/gmem: add arch-independent abstraction to track address mapping
status
mm/gmem: add GMEM (Gen
of migration data at page
granules.
Signed-off-by: Weixi Zhu
---
kernel/fork.c| 1 +
mm/huge_memory.c | 85 +++-
mm/memory.c | 42 +---
mm/mmap.c| 2 ++
mm/oom_kill.c| 2 ++
mm/vm_object.c | 84
ce driver invokes gm_as_attach() at the
beginning of a CPU program. This invocation can happen inside an ioctl()
call when a device context is initialized.
Signed-off-by: Weixi Zhu
---
include/linux/gmem.h | 196 +++
include/linux/mm_types.h | 1 +
, allowing the page table management to be
overlapped. In a test with Huawei's Ascend NPU card, the MADV_PREFETCH is
able to saturate the host-device bandwidth if the given VMA size is larger
than 16MB.
Signed-off-by: Weixi Zhu
---
arch/arm64/include/asm/unistd.h | 2 +-
arch/arm64/include
device local DRAM, where a cache-coherent
bus does not need to exist between the CPU and device local DRAM.
Furthermore, this allows an application user to issue memory hints that
bind with specific hNUMA nodes.
Signed-off-by: Weixi Zhu
---
drivers/base/node.c | 6
include/linux/gmem.h
VMA is detected to be
conflicting, it will be temporarily blacklisted. The mmap_region()
function will retry other VMA candidates for a predefined number of
iterations.
Signed-off-by: Weixi Zhu
---
fs/proc/task_mmu.c | 3 ++
include/linux/gmem.h | 26
and format vary arch by arch, which harms the extensibility.
[1] https://docs.freebsd.org/en/articles/vm-design/
Signed-off-by: Weixi Zhu
---
include/linux/gmem.h | 120 +
include/linux/mm_types.h | 4 +
mm/Makefile | 2 +-
mm/vm_obje