Новый шаг по интеграции в Linux ядро RealTime-расширений
До сих пор, в основной ветке Linux использовался только один тип спинлок-блокировок 0 - «вращающиеся» спинлоки (spinning spinlocks). Однако, в дереве PREEMPT_RT, они должны быть дифференцированы между спинлоками которые могут «засыпать» в режиме реального времени и обычными спинлоками, даже в режиме реального времени. Это требует нового пространства имен и решения, какой тип спинлоков переименовать.
На конференции Kernel Summit 2009, было решено не переименовывать блокировки, которые должны быть преобразованы в «засыпающие» спинлоки в дереве PREEMPT_RT, поскольку это привело бы к огромному количеству патчей и, безусловно, создало бы путаницу.
Позднее, в заключительной стадии слияния Linux 2.6.33, Линус выступил с предложением:
* Переименовать архитектуру реализаций спинлоков от raw_spinlock к arch_spinlock.
* Использовать raw_spinlock для спинлоков, которые работают даже на RT-ядре
* Сохранить spinlock блокировку для спинлоков, которые могут засыпать в режиме реального времени.
Томас Глейкснер создал серию патчей, которые Линус включил в ядро 2.6.33. Это позволило уменьшить размеры PREEMPT_RT патча на 350 Кбайт - еще одна важная веха на пути к полной интеграции «Реального времени» в основную ветку ядра!