Ситуация следующая. Запускаем на ядре 2.6.5 или младше на i386
такую программку:
#include <stdio.h>
#include <sys/mman.h>
int main() {
while(1) {
void *p = mmap(NULL,0x100000,PROT_READ |PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANONYMOUS, -1, 0);
if(p==(void*)-1)
break;
printf("p = %X\n", p);
}
return 0;
}
Она заканчивает работу на последнем возвращенном адресе 0xBFE2F000,
что меньше 3-гигабайтного предела.
Запускаем ту же самую прогу на ядре 2.6.8. Последний адрес равен 0xFED00000,
что больше 3-гигабайтного предела.
Проблема в следующем: я никак не могу найти в ChangeLog-ах ядра
запись, указывающую на фикс, позволяющий адресоваться дальше 3 Gb.
Куда смотреть, чтобы понять, что вообще изменилось?
Подскажите, плз. Заранее спасибо...
Ответ на:
комментарий
от Deleted
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от jek_
Ответ на:
комментарий
от idle
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум трейсинг malloc/free (2014)
- Форум Как MAP_GROWSDOWN в mmap? (2018)
- Форум Не понимаю с mmap.. (2005)
- Форум почему сегфолтится програмка?? (2010)
- Форум execve(script) error 13 (Permission denied) (2025)
- Форум Как узнать, сколько памяти доступно для выделения? (2005)
- Форум C + random + array + segfault (2014)
- Форум Утилита для изменения аптайма (2008)
- Форум Сборка модуля ядра из исходников под Linux 4.4 (2018)
- Форум Доступная физическая память.... (2005)