You are here: Home / OSADL / News / 
2020-10-28 - 07:21
2010-02-09 12:00 Age: 11 Years

Spinlock annotations merged from the realtime tree to Linux mainline in 2.6.33

By: Carsten Emde

Raw spinlocks are the "real" spinlocks now

Up to now, mainline Linux only knew of one type of spinlocks - spinning spinlocks. In the PREEMPT_RT tree, however, it must be differentiated between spinlocks that might sleep in the realtime kernel and those that always spin - even in the realtime kernel. This required a new name space and a decision which type of spinlocks to rename. At the 2009 Kernel Summit, it was decided not to rename the locks that need to be converted to sleeping spinlocks in preempt-rt, since this would result in an enormous patch orgy and certainly create a lot of confusion.

Later on, in the final stage of the merge window of Linux 2.6.33, Linus came up with the proposal to

  • rename the architecture implementations of spinlocks from raw_spinlock to arch_spinlock,
  • to use raw_spinlock for spinlocks that always spin even on RT and
  • to keep spinlock for spinlocks that might sleep in RT.

Thomas created this (still large) patch series which Linus merged into 2.6.33 on December 15, 2009. This reduced the size of the uncompressed preempt-rt patch by more than 600 kByte - another important milestone on our road towards complete integration of the RT tree into the mainline kernel!