All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: + spinlock_debug-dont-recompute-jiffies_per_loop.patch added to -mm tree
@ 2006-07-27  5:53 Chuck Ebbert
  0 siblings, 0 replies; 3+ messages in thread
From: Chuck Ebbert @ 2006-07-27  5:53 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel, Dave Jones

In-Reply-To: <20060725204306.GA22547@elte.hu>

On Tue, 25 Jul 2006 22:43:06 +0200, Ingo Molnar wrote:
> 
> * Dave Jones <davej@redhat.com> wrote:
> 
> >  > iteration limit, gets recomputed every time.  Caching it explicitly 
> >  > prevents that.
> > 
> > What is the purpose of those __delays being there at all ? Seems odd 
> > to be waiting that long when the spinlock could become available a lot 
> > sooner.  (These also make spinlock debug really painful on boxes with 
> > huge numbers of CPUs).
> 
> the debug code has to figure out when to trigger a deadlock warning 
> message. If we are looping in a deadlock with irqs disabled on all CPUs, 
> there's nothing that advances jiffies. The TSC is not reliable. The 
> thing that remains is to use __delay(1). We could calibrate the loop 
> separately perhaps?

Is there some reason this code:

                for (i = 0; i < loops_per_jiffy * HZ; i++) {
                        if (__raw_spin_trylock(&lock->raw_lock))
                                return;
                        __delay(1);
                }

needs to continuously try to update the spinlock?  Shouldn't it just
read it first, like this, to avoid the bus update traffic?

                        if (spin_can_lock(&lock->raw_lock) &&
                            __raw_spin_trylock(&lock->raw_lock))
                                return;


Also, looking at __delay(), I foresee problems on i386 with the HPET timer.
Every call to __delay() causes at least two HPET timer reads and it looks
like they're slow (using readl() on ioremapped memory, anyway.)

-- 
Chuck


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-07-27  5:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <200607251910.k6PJASfo006168@shell0.pdx.osdl.net>
2006-07-25 20:42 ` + spinlock_debug-dont-recompute-jiffies_per_loop.patch added to -mm tree Dave Jones
2006-07-25 20:43   ` Ingo Molnar
2006-07-27  5:53 Chuck Ebbert

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.