TGViewer
Kali Linux Kali Linux @linuxkalii · 55.4K subscribers
Post #2142 8.47K
Как Linux увеличивает счётчик без lock на SMP-системах

В ядре Linux есть трюк, который выглядит почти слишком просто: не заставлять все CPU драться за одну переменную.

Вместо общего счётчика используется per-CPU переменная - у каждого ядра своя копия данных.

На x86 макрос this_cpu_inc(var) превращается в одну инструкцию incl, которая работает с областью данных текущего CPU через GS.

Что это даёт:

* нет общего lock
* нет постоянной конкуренции между ядрами
* инкремент выполняется локально для текущего CPU
* операция получается быстрой и дешёвой

Идея мощная: если данные можно разделить по CPU, не нужно синхронизировать каждый маленький апдейт между всеми ядрами.

Так ядро экономит огромное количество лишней блокировки там, где код выполняется постоянно.
  • 👍 24
  • ❤ 9
  • 🔥 6
  • 🥰 2
More from @linuxkalii
  1. Sep 21, 2026Вайбкодерам на заметку )
  2. Sep 21, 2026Этот файл был удален пользователем Встречаемся в Москве с теми, кто отвечает за хранение д…
  3. Sep 20, 2026Один разработчик начал с треугольника - через пять лет Linux получил полноценную графику н…
  4. Sep 18, 2026⚡️ SpecterOps открыла большой набор готовых навыков и агентов для информационной безопасно…
  5. Sep 16, 2026Denuvo пошла по следу voices38 - известного хакера, который с начала года обходил защиту в…
  6. Sep 16, 2026✔️ OpenAI читает переписки пользователей с ChatGPT Издание 404 Media выяснило, что OpenAI…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →