LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

Наверное человек хотел сказать, что когда ты mmap() 10 гигабайт, то ты забиваешь TLB на соответствующее количество страниц. А когда ты имеешь buffer pool на 200MB и дочитываешь данныее через read только туда, то TLB отдыхает, потому что 200 меньше 10000

TLB — это кэш трансляции, потому при выполнении самого mmap TLB вообще никак не трогается. TLB забивается лишь при выполнении ввода-вывода и чтения из кэша. Однако же, трансляцию при вводе-выводе в кэш ты никак не уберешь, а для чтения из кэша отображать страницы нужно в любом случае.

Я еще раз подчеркну, что стоимость системного вызова — это и есть стоимость заполнения TLB заново, поскольку его содержимое сбрасывается при смене адресного пространства.

Исходная версия byko3y, :

Наверное человек хотел сказать, что когда ты mmap() 10 гигабайт, то ты забиваешь TLB на соответствующее количество страниц. А когда ты имеешь buffer pool на 200MB и дочитываешь данныее через read только туда, то TLB отдыхает, потому что 200 меньше 10000

TLB — это кэш трансляции, потому при выполнении самого mmap TLB вообще никак не трогается. TLB забивается лишь при выполнении ввода-вывода и чтения из кэша. Однако же, трансляцию при вводе-выводе в кэш ты никак не уберешь, а для чтения из кэша отображать страницы нужно в любом случае.

Я еще раз подчеркну, что стоимость системного вызова — это и есть стоимость заполнения TLB заново, поскольку его содержимое сбрасывается при сене адресного пространства.