Здравствуйте, remark, Вы писали:
R>А в каком контексте clflush применяется при JIT компиляции? R>Вроде ж как при модификации кода модификация будет распространяться по протоколу когерентности на общих основаниях :xz: R>Насколько я помню из документации, если модифицируется выровненный блок не более 16 байт, то вообще никаких специальных мер предпринимать не надо. R>В документации AMD я вижу упоминание clflush только в контексте устройств, которые не поддерживают протокол когерентности кэшей. R>А в документации Intel — в контексте виртуализации...
Очистка кэша кода. У Intel он точно сам не флашится при записи в ту область, которая закэширована (причём ведь у интела в код-кэше ещё и микрооперации или как их там нынче велено называть хранятся). У AMD -- не помню, но вроде как тоже...
Оно надо не при любой динамической генерации, но иногда приходится.