Hi, > -----Original Message----- > From: kernelnewbies-boun...@kernelnewbies.org [mailto:kernelnewbies- > boun...@kernelnewbies.org] On Behalf Of Dave Hylands > Sent: Friday, January 07, 2011 10:59 AM > To: Viral Mehta > Cc: kernelnewbies@kernelnewbies.org > Subject: Re: spin_lock and scheduler confusion > > Hi Viral, > > On Wed, Jan 5, 2011 at 2:23 PM, Viral Mehta > <viral.me...@lntinfotech.com> 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@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies