VmallocTotal이 34359738367KB인 이유는 무엇입니까?

VmallocTotal이 34359738367KB인 이유는 무엇입니까?

/proc/meminfo메모리 통계가 있습니다 VmallocTotal. 그것은 다음과 같이 설명됩니다.

vmalloc 메모리 영역의 전체 크기입니다.

존재하다proc 매뉴얼 페이지

그리고 다른 곳에서는

커널에서 vmalloc 할당에 사용 가능한 총 메모리

그것은 매우 높은 숫자이고 내가 검색한 모든 곳에서 우연히 34359738367 kB였기 때문에 호기심을 불러일으켰습니다. 이는 임의의 최대값인 것 같습니다. 하지만 34359738367kB의 요점은 무엇입니까? 2의 배수도 아니고 소수도 아니지만 16진수로는 0x7FFFFFFFF 입니다. 또한 pmap프로세스 메모리 맵 주소가 최대 0x7FFFFFFFF인 것을 확인했습니다 . 그렇다면 0x7FFFFFFFF의 실제적인 의미는 무엇입니까?

답변1

32TiB, 즉 공간의 양입니다.vmallocLinux 커널의 x86-64 메모리 맵에 예약되어 있습니다..

64비트 주소 공간이 크기 때문에 큰 것입니다. 나는 레이아웃을 디자인할 때 구체적인 크기가 깔끔하게 세분화되는 것 외에 다른 의미가 없다고 생각합니다.

관련 정보