On Fri, Feb 12, 2010 at 5:00 PM, vinit dhatrak <[email protected]>wrote:

> On Fri, Feb 12, 2010 at 11:21 PM, Vipul Jain <[email protected]> wrote:
> > Hello All,
> >
> >    I am trying to understand the what's the difference between spinlock
> and
> > spinlock_bh. I was wondering if someone could please help me in
> > understanding it and when to use spinlock_bh over spinlock.
> >
> > Thanks & Regards,
> > Vipul.
> >
>
> Hi Vipul,
>
>
> spin_lock() function just tries to acquire the lock, but
> spin_lock_bh() will disable softirqs also.
> e.g. if you want to protect some data which is shared between some
> user context and a timer(or softirq or tasklet), you can not use just
> spin_lock().
> Because your user context can get interrupted by timer thread which
> will try to acquire the lock which is already locked by the user
> context.
>
> Please refer to the "Unreliable Guide To Locking",
>
>
> http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/x137.html
>
> http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/c214.html#MINIMUM-LOCK-REQIREMENTS
>
>
> Hope this helps.
>
>
> -Vinit
>

Thanks every one for your kind reply, It does really helps.

Regards,
Vipul.

Reply via email to