Кеш команд не является подсистемой ядра Linux - это часть ЦП.
Извлечение кода из основной памяти занимает много времени, поэтому ЦП используют кеш-память для кеширования фрагментов кода.Это кэш инструкций, в котором хранятся копии инструкций (кода), и у ЦП есть основания полагать, что они скоро понадобятся.
Если вы измените инструкции (код) в памяти, как это делается в приведенном выше примере,но не очищайте кэш инструкций, ваш измененный код может таинственным образом не запускаться до тех пор, пока не будет очищен какой-то случайный момент времени, когда запись в кэше инструкций, содержащая замененную вами инструкцию, будет очищена.,Проблема, связанная с этим, заключается в том, что в системе SMP (многоядерный или многоядерный) код, который устанавливает вашу точку трассировки, может выполняться на одном процессоре, в то время как другой выполняет его.Чтобы безопасно справиться с этим, вам нужно выполнить очень сложную задачу синхронизации всех процессоров, чтобы убедиться, что код, который вы пытаетесь исправить, не используется на каком-либо другом процессоре прерыванием.