내가 하고 싶은 일은 tmpfs에 파일을 넣고 모든 파일(모든 페이지)이 동일한 NUMA 노드에 있는지 확인하는 것입니다. 첫째, 간단할 것이라고 생각했습니다. mmap()
tmpfs 파일이 있고 이를 MAP_SHARED
사용하여 mbind()
원하는 노드에 바인딩한 다음 복사하기만 하면 됩니다. 그러나 mbind() 매뉴얼 페이지에서는 이 접근 방식을 명시적으로 제외합니다.
NUMA policy is not supported on a memory-mapped file range
that was mapped with the MAP_SHARED flag.
맙소사! 매뉴얼 mbind()
페이지에는 공유 매핑의 경우 프로세스 메모리 정책( 사용)에만 의존할 수 있다고 나와 있습니다 set_mempolicy()
. 그러나 이는 이상적인 것과는 거리가 멀습니다. 저는 다중 스레드 애플리케이션을 실행 중이고 어떤 스레드가 복사를 수행하는지 신경쓰고 싶지 않습니다. 차라리 메모리 정책이 tmpfs에 묶여 있기를 바랍니다.문서대신 내 삶을 더 쉽게 만들어주세요.
이 문제를 해결하는 방법에 대한 아이디어가 있는 사람이 있습니까?