TGViewer
Linux Education Linux Education @linux_education · 11.1K subscribers
Post #2632 1.1K
Как Linux увеличивает счётчик без lock на SMP-системах

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

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

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

Что это даёт:

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

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

Так ядро экономит огромное количество лишней блокировки там, где код выполняется постоянно.

@linux_education
  • ❤ 3
  • 👍 1
  • 🔥 1
More from @linux_education
  1. Oct 15, 2026Post #2857
  2. Oct 15, 2026🖥 Линус Торвальдс ответил противникам ИИ: тогда и компилятором не пользуйтесь Торвальдс в…
  3. Oct 14, 2026Post #2854
  4. Oct 14, 2026@linux_education
  5. Oct 13, 2026‍🚨 ИИ-черви могут научиться размножаться без дата-центров Anthropic проверила, достаточно…
  6. Oct 12, 2026🐧 Линус Торвальдс использует Claude Code для ускорения ядра Linux. Он опубликовал экспери…
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 →