On Wed, Oct 7, 2009 at 1:57 PM, er krishna <[email protected]> wrote:
> > > On Wed, Oct 7, 2009 at 12:45 PM, govind raj nayak <[email protected] > > 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 >> >> >> <http://sigads.rediff.com/RealMedia/ads/click_nx.ads/www.rediffmail.com/signatureline....@middle?> >> > >
