Re: Re: locking and interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Wed, Oct 7, 2009 at 1:57 PM, er krishna <erkrishna@xxxxxxxxx> wrote:


On Wed, Oct 7, 2009 at 12:45 PM, govind raj nayak <govind02@xxxxxxxxxxxxxx> wrote:
Yes, spinlock would automatically disable kernel preemption.

>>>>>>I don't think so, otherwise what is the use of spin_lock_irq_save api, if spin_lock api does it  ?.  I mean if spin_lock api >>>>>>is disabling the kernel preemption, then can a newly occured interrupt will preempt currently executing process which >>>>>>has taken a spin lock by spin_lock() api. Just confirm my understanding.

>>>>>>>I don't think all the spinlock api will disable kernel preemption. We must check in kernel code, that on which API >>>>>>>preemption is disable or if anybody knows, please mention those ones.

 
I was just giving theeoritical overview. As far as I know not all synchronization constructs would disable the kernel preemption


>>>>>>Yes, agreed.
>>>>>>Can we say if preemption is disable but interrupts are not, then interrupt handler won't be able to preempt the currently executing process.

>>>>>> I am just asking, if we have disable the interrupts on local processor by some api, and suddenly if higher priority >>>>>> process/ interrupt comes (the first process  which is currently executing has acquired a spin lock by >>>>>>spin_lock_irq_save() api).  I just want to know weather the higher priority process/interrupt will preempt the lower priority process or it will spin.


Sorry for this question, we can't apply spin locks in process context and interrupt won't be able to preempt as it is disabled.



 
Just clear the confusion.


Regards,
Krishna
 
automatically (for instance when acquiring a big kernel lock). In addition you could use preempt_enable() and preempt_disable() to explicitly enable or disable kernel preemption. Thanks.

-Govindraj

On Wed, 07 Oct 2009 11:15:06 +0530 wrote
>Rajat San,Just asking (since i didn't see spinlock implementation in kernel src),On Tue, Oct 6, 2009 at 5:52 PM, Rajat Jain wrote:

Hello Govind,

> What happens when you go for spin locks without
> disabling kernel preemption? Suppose you acquire
> a spin lock in a system call handler (a service
> routine on behalf of a user mode process) with
> kernel preemption enabled.

This is not possible. Spin lock APIs disable kernel preemption
automatically.Spin lock APIs disables kernel preemption in all its api or some specific apis only. Please confirm and elaborate. 


Thanks,

RajatBest regards,Krishna




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux