Recently I attended couple of interviews. Out of all kernel questions which were asked, there is one specific question which I couldn’t find convincing answer of.
How will you use different synchronization techniques while sharing data between user space process and interrupt context function? My convincing answer was:
In interrupt context code:
1. do *spin_lock_irqsave*
2. access data buffer which is shared between user space app and kernel
3. do *spin_lock_irqrestore*
Then this was not convincing answer. Do I have to do irqsave
and irqrestore
in all the instances of data access?