Ситуация следующая. Запускаем на ядре 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
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.