Paul, Thank you for your answer. We have PREEMT_VOLUNTARY defined, so that is the reason why the CONFIG_PREEMPT_COUNT is undefined. The second question (that was badly formatted in original message) was:
In the previous kernel versions, spin_lock() and spin_unlock() call preempt_enable() and preempt_disable() respectively, ensuring that the current task will not be preempted by any other task while lock is held. Is this still ensured with these macros defined as “do nothing” ? -----Original Message----- From: Paul Bolle [mailto:[email protected]] Sent: Monday, March 31, 2014 3:25 PM To: Skidanov, Alexey Cc: [email protected]; Gabbay, Oded Subject: Re: CONFIG_PREEMPT_COUNT Alexey, On Mon, 2014-03-31 at 10:38 +0000, Skidanov, Alexey wrote: > What is the purpose of CONFIG_PREEMPT_COUNT define and how I can > define it? CONFIG_PREEMPT_COUNT is a Kconfig macro, ie it's (in short) to be defined as a result one of the "*config" make targets. And doing git grep -nw PREEMPT_COUNT gives kernel/Kconfig.preempt:38: select PREEMPT_COUNT kernel/Kconfig.preempt:57:config PREEMPT_COUNT lib/Kconfig.debug:964: select PREEMPT_COUNT And looking at those hits it seems PREEMPT_COUNT will be set, and therefore CONFIG_PREEMPT_COUNT defined, if either PREEMPT or DEBUG_ATOMIC_SLEEP are set in a .config. (I'm not familiar with PREEMPT_COUNT. I think I never used it.) Hope this helps, Paul Bolle

