[parisc-linux] Mysterious hangs with parisc

Joel Soete soete.joel at tiscali.be
Thu Jul 6 12:22:40 MDT 2006



Kyle McMartin wrote:
> On Fri, Jun 23, 2006 at 10:41:09PM -0400, John David Anglin wrote:
> 
>>This is not to say that the locking code can't be improved.  As far
>>as I can tell, hpux doesn't spin.  It has pre-abitration, priorities
>>for waiters, etc.  When a lock is released, suwaiters is called to
>>pass the lock in a fair way to another waiter if there is one.
>>
> 
> 
> HPUX spinlocks /do/ spin, afaict. They just keep track of how long
> they've been spinning for (and panic after 60 seconds.) On release of
> a spinlock, they also donate it to another cpu, which is, I guess, the
> arbitration thing. I can back this up with disassembly, but I wouldn't
> be comfortable doing it over mail, due to copyright infringement and
> blah blah.
> 
> Cheers,
> 	 Kyle M.

Cool ;-)

That said to followup another related thread <http://lists.parisc-linux.org/pipermail/parisc-linux/2006-July/029481.html>, the 
do_gettimeofday() jejb's patch doesn't help:

after just some hours of my stress test:

top - 17:52:25 up 21:57,  3 users,  load average: 8.16, 7.18, 6.91
Tasks:  84 total,   5 running,  79 sleeping,   0 stopped,   0 zombie
Cpu0  : 53.7% us, 35.3% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi, 11.0% si
Cpu1  : 86.1% us, 10.2% sy,  0.0% ni,  0.0% id,  0.7% wa,  0.0% hi,  2.9% si
Mem:   4114224k total,  4018628k used,    95596k free,   483816k buffers
Swap:   250872k total,        4k used,   250868k free,   436632k cached


I still encountered the well know BUG: soft lockup detected
BUG: soft lockup detected on CPU#1!
Backtrace:
  [<00000000101122b0>] dump_stack+0x18/0x28
  [<0000000010171c60>] softlockup_tick+0x128/0x158
  [<0000000010151a00>] run_local_timers+0x28/0x38
  [<0000000010152770>] update_process_times+0x58/0xd8
  [<000000001011cc08>] smp_do_timer+0x70/0x80
  [<00000000101134b4>] timer_interrupt+0xdc/0x1e0
  [<0000000010171e04>] handle_IRQ_event+0x74/0xd0
  [<0000000010171f1c>] __do_IRQ+0xbc/0x268
  [<0000000010113e74>] do_cpu_irq_mask+0x114/0x1e0
  [<0000000010104074>] intr_return+0x0/0x1c

BUG: soft lockup detected on CPU#0!
Backtrace:
  [<00000000101122b0>] dump_stack+0x18/0x28
  [<0000000010171c60>] softlockup_tick+0x128/0x158
  [<0000000010151a00>] run_local_timers+0x28/0x38
  [<0000000010152770>] update_process_times+0x58/0xd8
  [<000000001011cc08>] smp_do_timer+0x70/0x80
  [<00000000101134b4>] timer_interrupt+0xdc/0x1e0
  [<0000000010171e04>] handle_IRQ_event+0x74/0xd0
  [<0000000010171f1c>] __do_IRQ+0xbc/0x268
  [<0000000010113e74>] do_cpu_irq_mask+0x114/0x1e0
  [<0000000010104074>] intr_return+0x0/0x1c

(only a small diff with previous failures: here it shows also 'CPU#1!')

Otoh previous test seems to show that older gcc-3.3 would produce a more operational kernel but I haven't any idea where to look for?

All guide line would be welcome.

Thanks,
     Joel



More information about the parisc-linux mailing list