RE: spin_lock and scheduler confusion

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

 



Hi,

> -----Original Message-----
> From: kernelnewbies-bounces@xxxxxxxxxxxxxxxxx [mailto:kernelnewbies-
> bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Dave Hylands
> Sent: Friday, January 07, 2011 10:59 AM
> To: Viral Mehta
> Cc: kernelnewbies@xxxxxxxxxxxxxxxxx
> Subject: Re: spin_lock and scheduler confusion
> 
> Hi Viral,
> 
> On Wed, Jan 5, 2011 at 2:23 PM, Viral Mehta
> <Viral.Mehta@xxxxxxxxxxxxxxx> wrote:
> >
> > Hi ,
> >
> > I need your help to solve below confusion.
> >
[...]
> 
> Note that you can't sleep while you hold a spinlock. You're not
> allowed to perform any type of blocking operations. If you're holding
> the spinlock for any significant length of time, then you're using the
> wrong design.
> 
> >     spin_lock_irqrestore();
> > 3. One of the CPU core tries to execute this code and so acquires the
> lock.
> > 4. Now, second core is also goes to execute same piece of code and so
> will
[...]
> 
> Not while it's holding the spinlock or waiting for the spinlock.
> 
> > Ever if timeslice is over for the current task ?
> 
> The time tick interrupt is what determines when the timeslice is over.
> Since you have interrupts disabled, the timer interrupt can't happen.
> 
> > What if scheduler code is running on CPU core-3 and sees that
> > timeslice for task running on CPU core-2 has expired ?
> 
> Each core only considers the timeslices for its own core.
> 
> > I guess timeslice expire case is not as same as preemption. Or may be
> I am
> > terribly wrong.
> 
> You shouldn't be holding  a spinlock for periods of time approaching
> the length of a timeslice. The timer interrupt is what determines the
> end of a timeslice. No timer interrupt, no end of a timeslice.
> Preemption is also triggered by the timer interrupt, or by releasing a
> resource that a higher priority task is waiting for.

May be my understanding is incorrect, but wouldn't we hit the NMI watchdog here(assuming we are running on x86/x86_64)? 
We have a system lockup for long time.
http://lxr.linux.no/#linux+v2.6.37/Documentation/nmi_watchdog.txt

Could someone please clarify?
> 
> Dave Hylands

--
Thanks,
Nilesh

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[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