Информация об изменениях

Сообщение Re[12]: а возможны ли "патчи" ? от 12.01.2018 15:40

Изменено 12.01.2018 15:41 lpd

Re[12]: а возможны ли "патчи" ?
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Хороший VMM (а плохих в профессиональном применении не держат) не позволяет VM генерировать PF без крайней необходимости.


page fault в хост выполняется при любом обращении к диску + Copy-on-Write при запуске программ.

EM>Встретив первое обращение к регистру/памяти эмулируемого устройства, он заменяет его на обычный вызов функции поддержки, так что все остальные обращения из того же места идут без лишних расходов.


То, что ты пишешь — очень странно. Такого не может быть, т.к. даже без виртуальных машин память ввода-вывода устройств не кешируется ни в коем случае.

EM>В устоявшемся режиме он дергает ядро хоста только по необходимости (например, для обращения к хостовым устройствам, файлам за пределами буферизации и т.п.).


Про обращение к хостовым устройствам в режиме pass-through точно не скажу, но, скорее всего, эти вызовы проходят через ядро хоста.
А эмулируемые устройства в большинстве случаев вообще обрабатываются в user-mode хоста. По-крайней мере, в kvm(кроме vhost-net).
Re[12]: а возможны ли "патчи" ?
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Хороший VMM (а плохих в профессиональном применении не держат) не позволяет VM генерировать PF без крайней необходимости.


page fault в хост выполняется при любом обращении к диску + Copy-on-Write при запуске программ.

EM>Встретив первое обращение к регистру/памяти эмулируемого устройства, он заменяет его на обычный вызов функции поддержки, так что все остальные обращения из того же места идут без лишних расходов.


То, что ты пишешь — очень странно. Такого не может быть, т.к. даже без виртуальных машин память ввода-вывода устройств не кешируется ни в коем случае.

EM>В устоявшемся режиме он дергает ядро хоста только по необходимости (например, для обращения к хостовым устройствам, файлам за пределами буферизации и т.п.).


Про обращение к хостовым устройствам в режиме pass-through точно не скажу, но, скорее всего, эти вызовы проходят через ядро хоста.
А эмулируемые устройства в большинстве случаев вообще обрабатываются в user-mode хоста. По-крайней мере, в kvm(кроме vhost-net? которое обрабатывается в хостовом ядре).