Невозможно выделить 256 ТБ виртуальной памяти на Raspberry Pi 3 Model BLinux

Ответить
Гость
 Невозможно выделить 256 ТБ виртуальной памяти на Raspberry Pi 3 Model B

Сообщение Гость »


В образовательных целях я выяснял, сколько виртуальной памяти я могу выделить в Linux. На x86_64 получается выделить 128ТБ виртуальной памяти как указано в документации. А вот на арм64 мне удается выделить всего 170Тб виртуальной памяти, хотя в документации указано 256Тб. Хочу понять, что мне мешает выделить 256ТБ виртуальной памяти.
Поэтому я написал программу

Код: Выделить всё

#define _GNU_SOURCE
#include 
#include 
#include 

int main() {
char *chars;
size_t nbytes;

while(chars != MAP_FAILED) {
nbytes += 0x10000000000; // 1TB
chars = mmap(
NULL,
nbytes,
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS,
-1,
0
);

munmap(chars, nbytes);
}

printf("Allocated %ld total TB\n", nbytes/1024/1024/1024/1024);
exit(EXIT_FAILURE);
}

Set the parameters of the overcommit:

Код: Выделить всё

echo 1 > /proc/sys/vm/overcommit_memory
And got result:

Код: Выделить всё

Allocated 171 total TB
I tried to increase the parameters:

Код: Выделить всё

sysctl -w vm.max_map_count=655300000
ulimit -l unlimited
But nothing helps.
My kernel params:

Код: Выделить всё

# grep CONFIG_ARM64_VA_BITS /boot/config-$(uname -r)
# CONFIG_ARM64_VA_BITS_39 is not set
CONFIG_ARM64_VA_BITS_48=y
CONFIG_ARM64_VA_BITS=48

# grep CONFIG_ARM64_PA_BITS /boot/config-$(uname -r)
CONFIG_ARM64_PA_BITS_48=y
CONFIG_ARM64_PA_BITS=48
My system:

Код: Выделить всё

ARM Cortex A53 (ARMv8) - 1GB RAM
5.15.0-1034-raspi #37-Ubuntu SMP PREEMPT

Код: Выделить всё

# free -m
total        used        free      shared  buff/cache   available
Mem:             905         198         346           3         360         616


Источник: https://stackoverflow.com/questions/781 ... -3-model-b
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»