Определение SPLIT_RSS_COUNTING
определяется, когда контролируемая пользователем конфигурация CONFIG_SPLIT_PTLOCK_CPUS
превышает физическое число процессоров, как определено в конфигурации CONFIG_NR_CPUS
.Не углубляясь слишком глубоко, это означает, что пользователь может контролировать, какое количество процессорного времени требуется ядру для блокировки учета.Эта конфигурация является уникальной для процессоров ARM и PARISC.
Когда определено SPLIT_RSS_COUNTING
, add_mm_counter
необходимо защитить от одновременного доступа, и поэтому он защищен с помощью спин-блокировок с использованием блокировки mm->page_table_lock
.
Спин-блокировка - это самый простой способ синхронизации нескольких процессоров.Когда спин-блокировка введена, и блокировка уже удерживается другим ЦП, текущий ЦП войдет в цикл, проверяя значение флага блокировки.Когда значение флага изменится на неблокированное, текущий ЦП возьмет блокировку и вернется из функции spin_lock
.