Search code examples
linux-kernelkernel-modulekernel32

spinlocks & jiffy updation


I have couple of questions. 1) In case of UP how is jiffies(timer) get updated while holding spin lock using spinlock_irq_save? 2)My understanding is in smp environment jiffies updation cannot be done on processor holding spinlock irrespective of spinlock API.So timer interrupt should be enabled across all cores in SoC. Imagine a scenario in quad core processor where 4 cores are holding 4 different spinlocks & how is the timer interrupt for jiffies handled?

Any help here will be appreciated.


Solution

    1. simple - it isn't. 2. spin lock and other critical section that disable IRQs must be very short. Jiffie updates only occurs when IRQs are enabled.