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

C>>Десятки тысяч операций в секунду получаются легко и непринуждённо.

ЕМ>Для обмена сетевыми пакетами с драйвером до сих пор не придумали прямого способа, вроде разделяемого кольцевого буфера? Мрак. Для звука придумали больше десяти лет назад.
Тогда потом придётся весь TCP и прочие реализовать в userspace. Ни одна из БД этого не делает.
Sapienti sat!
Re[8]: а возможны ли "патчи" ?
От: Sharov Россия  
Дата: 12.01.18 10:54
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>А им для чего?


Для работы с железом. Их может быть много.
Кодом людям нужно помогать!
Re[11]: а возможны ли "патчи" ?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.01.18 11:59
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Тогда потом придётся весь TCP и прочие реализовать в userspace.


Зачем?
Re[9]: а возможны ли "патчи" ?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.01.18 12:01
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Для работы с железом. Их может быть много.


Много — это само собой. А каким виртуалкам в устоявшемся режиме работы потребны тысячи-десятки тысяч обращений к ядру хоста?
Re[10]: а возможны ли "патчи" ?
От: Sharov Россия  
Дата: 12.01.18 12:43
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Много — это само собой. А каким виртуалкам в устоявшемся режиме работы потребны тысячи-десятки тысяч обращений к ядру хоста?


На которых крутятся бд, например.
Кодом людям нужно помогать!
Re[11]: а возможны ли "патчи" ?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.01.18 13:38
Оценка:
Здравствуйте, Sharov, Вы писали:

ЕМ>>каким виртуалкам в устоявшемся режиме работы потребны тысячи-десятки тысяч обращений к ядру хоста?


S>На которых крутятся бд, например.


Можно пример типичной (то есть, весьма распространенной) БД, которой большинство из [десятков] тысяч запросов в секунду нужно проводить именно в транзакционной форме? На мой взгляд, бОльшая часть запросов к любой БД — это таки чтение, которое хорошо буферизуется и не требует тразакционности.
Re[10]: а возможны ли "патчи" ?
От: lpd Черногория  
Дата: 12.01.18 13:40
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, Sharov, Вы писали:


S>>Для работы с железом. Их может быть много.


ЕМ>Много — это само собой. А каким виртуалкам в устоявшемся режиме работы потребны тысячи-десятки тысяч обращений к ядру хоста?


Виртуальные машины часто обрабатываются в ядре хоста, например при page-fault и при эмуляции устройств. В последнем случае часто обращаются еще и в user-level хоста.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Отредактировано 12.01.2018 13:40 lpd . Предыдущая версия .
Re[11]: а возможны ли "патчи" ?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.01.18 14:21
Оценка:
Здравствуйте, lpd, Вы писали:

lpd>Виртуальные машины часто обрабатываются в ядре хоста, например при page-fault и при эмуляции устройств.


Хороший VMM (а плохих в профессиональном применении не держат) не позволяет VM генерировать PF без крайней необходимости. Встретив первое обращение к регистру/памяти эмулируемого устройства, он заменяет его на обычный вызов функции поддержки, так что все остальные обращения из того же места идут без лишних расходов. В устоявшемся режиме он дергает ядро хоста только по необходимости (например, для обращения к хостовым устройствам, файлам за пределами буферизации и т.п.).
Re[12]: а возможны ли "патчи" ?
От: lpd Черногория  
Дата: 12.01.18 15:40
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

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


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

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


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

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


Про обращение к хостовым устройствам в режиме pass-through точно не скажу, но, скорее всего, эти вызовы проходят через ядро хоста.
А эмулируемые устройства в большинстве случаев вообще обрабатываются в user-mode хоста. По-крайней мере, в kvm(кроме vhost-net? которое обрабатывается в хостовом ядре).
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Отредактировано 12.01.2018 15:41 lpd . Предыдущая версия .
Re[13]: а возможны ли "патчи" ?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.01.18 15:57
Оценка:
Здравствуйте, lpd, Вы писали:

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


Верно. Но в грамотно организованной для эффективной работы системе программы не запускаются заново даже сотни раз в секунду, не говоря уже о тысячах. И работа с файлами (хоть обычными, хоть БД) прилично буферизована, так что не требуется тысячи раз в секунду обращаться к физическому диску.

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


На хосте — конечно, не кэшируется. Я и писал исключительно об эмуляции устройств VM в VMM.

lpd>Про обращение к хостовым устройствам в режиме pass-through точно не скажу, но, скорее всего, эти вызовы проходят через ядро хоста.


Ну да.

lpd>А эмулируемые устройства в большинстве случаев вообще обрабатываются в user-mode хоста.


Именно, о чем и речь. Поэтому мне и странно видеть утверждения о том, что любая нагруженная VM якобы обязана тысячи и десятки тысяч раз в секунду дергать ядро хоста.
Отредактировано 12.01.2018 15:57 Евгений Музыченко . Предыдущая версия .
Re[14]: а возможны ли "патчи" ?
От: lpd Черногория  
Дата: 12.01.18 16:03
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, lpd, Вы писали:


lpd>>А эмулируемые устройства в большинстве случаев вообще обрабатываются в user-mode хоста.


ЕМ>Именно, о чем и речь. Поэтому мне и странно видеть утверждения о том, что любая нагруженная VM якобы обязана тысячи и десятки тысяч раз в секунду дергать ядро хоста.


Обращения к user-mode хоста все равно проходят через ядро хоста. По моим наблюениям, когда VM нагружена на 100%(компиляция), процесс виртуальной машины на хосте грузит проц процентов на 120-150. Т.е. на хосте немало операций выполняются.
А что passthrough устройств распространено на серверах я далеко не уверен.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Отредактировано 12.01.2018 16:06 lpd . Предыдущая версия . Еще …
Отредактировано 12.01.2018 16:05 lpd . Предыдущая версия .
Re[12]: а возможны ли "патчи" ?
От: Cyberax Марс  
Дата: 12.01.18 18:11
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

C>>Тогда потом придётся весь TCP и прочие реализовать в userspace.

ЕМ>Зачем?
Если хочется реализовывать прямое общение с сетевой картой. Сокеты и кольцевые буферы как-то вместе не особо живут.
Sapienti sat!
Re[15]: а возможны ли "патчи" ?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 13.01.18 02:34
Оценка:
Здравствуйте, lpd, Вы писали:

lpd>Обращения к user-mode хоста все равно проходят через ядро хоста.


Что такое "обращения к user-mode хоста", и для чего им непременно проходить через его ядро?

lpd>По моим наблюениям, когда VM нагружена на 100%(компиляция), процесс виртуальной машины на хосте грузит проц процентов на 120-150. Т.е. на хосте немало операций выполняются.


Какой смысл смотреть на загрузку процессора? Он-то всегда будет загружен при активной работе, иначе невозможно. Смотрите частоту переключений в ядро.
Re[13]: а возможны ли "патчи" ?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 13.01.18 02:35
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Сокеты и кольцевые буферы как-то вместе не особо живут.


Что именно могло бы помешать им жить вместе?
Re[12]: а возможны ли "патчи" ?
От: DenisCh Россия  
Дата: 13.01.18 06:10
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ> ЕМ>>каким виртуалкам в устоявшемся режиме работы потребны тысячи-десятки тысяч обращений к ядру хоста?

ЕМ> S>На которых крутятся бд, например.
ЕМ> Можно пример типичной (то есть, весьма распространенной) БД, которой большинство из [десятков] тысяч запросов в секунду нужно проводить именно в транзакционной форме? На мой взгляд, бОльшая часть запросов к любой БД — это таки чтение, которое хорошо буферизуется и не требует тразакционности.

OLAP vs OLTP?
Первый — больше чтений, второй — больше записей.
avalon/2.0.3
Re[16]: а возможны ли "патчи" ?
От: lpd Черногория  
Дата: 13.01.18 06:53
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, lpd, Вы писали:


lpd>>Обращения к user-mode хоста все равно проходят через ядро хоста.


ЕМ>Что такое "обращения к user-mode хоста", и для чего им непременно проходить через его ядро?


По крайней мере в kvm, большинство виртуальных устройств(кроме драйверов vhost, эмулируемых ядром хоста) эмулируются user-level программой на хосте. VM сначала переключается в kernel-mode хоста, генерирует событие, которое ждет user-level эмулятор; после этого user-level эмулятор добавляется в очередь планировщика и он обработает запрос к устройству, когда в него переключится контекст.
Насколько это замедлится из-за исправления meltdown/spectre я судить не берусь.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Отредактировано 13.01.2018 7:20 lpd . Предыдущая версия . Еще …
Отредактировано 13.01.2018 7:19 lpd . Предыдущая версия .
Отредактировано 13.01.2018 6:54 lpd . Предыдущая версия .
Re[14]: а возможны ли "патчи" ?
От: Cyberax Марс  
Дата: 13.01.18 08:55
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

C>>Сокеты и кольцевые буферы как-то вместе не особо живут.

ЕМ>Что именно могло бы помешать им жить вместе?
Со стороны userspace нужен или постоянный polling или те же события. А если использовать события, то один фиг разницы уже нет — ядро всё равно вовлечено.
Sapienti sat!
Re: Visualizing Meltdown on AWS
От: Sharov Россия  
Дата: 19.01.18 19:03
Оценка:
FYI

https://blog.appoptics.com/visualizing-meltdown-aws/

Правда в конце пишут, что полегчало.
Кодом людям нужно помогать!
Re: Торвальдс в своем репертуаре.
От: Sharov Россия  
Дата: 26.01.18 17:57
Оценка:
Здравствуйте, Cyberax, Вы писали:

http://lkml.iu.edu/hypermail/linux/kernel/1801.2/04628.html
Кодом людям нужно помогать!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.