All of lore.kernel.org
 help / color / mirror / Atom feed
* [parisc-linux] travel backwards in time?
@ 2001-10-18 20:21 ` Randolph Chung
  2001-10-18 23:23   ` Paul Bame
  2001-11-29 18:58   ` Grant Grundler
  0 siblings, 2 replies; 5+ messages in thread
From: Randolph Chung @ 2001-10-18 20:21 UTC (permalink / raw)
  To: parisc-linux

Recently Grant and I have observed several hangs in do_gettimeofday on a
c3k running 32 or 64-bit kernels (UP). 

The symptom we see is gettimeoffset returns a negative number which
results in a huge (unsigned) usec offset in do_gettimeofday, which ends
up spinning in a while loop.

On further investigation we found this piece of code that we don't 
quite understand in the gettimeoffset function:


        /* this is the intended time of the next tick */
        last_tick = cpu_data[smp_processor_id()].it_value;
        /* so subtract one tick */
        /* and account for possible difference between wall and actual time */
        last_tick += clocktick * (jiffies - wall_jiffies - 1);
	
The last_tick adjustment looks a bit odd. Looking at ia64, it looks more
like this:

        last_tick -= clocktick * (jiffies - wall_jiffies + 1);

I tried this and couldn't reproduce the hangs anymore, but am not sure
if this is the right fix.

jsm suggested we try an experiment to disable interrupts in the
timer_interrupt handler. I tried that yesterday (add a __cli() call) and
it didn't seem to fix the hangs.

Can someone more familiar with that part of the code (pb?) please comment?

randolph
-- 
   @..@                                         http://www.TauSq.org/
  (----)
 ( >__< )
 ^^ ~~ ^^

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

* Re: [parisc-linux] travel backwards in time?
  2001-10-18 20:21 ` [parisc-linux] travel backwards in time? Randolph Chung
@ 2001-10-18 23:23   ` Paul Bame
  2001-11-29 18:58   ` Grant Grundler
  1 sibling, 0 replies; 5+ messages in thread
From: Paul Bame @ 2001-10-18 23:23 UTC (permalink / raw)
  To: Randolph Chung; +Cc: parisc-linux

> 
> Can someone more familiar with that part of the code (pb?) please comment?
> 

I never had lots of confidence in that code even though I introduced it
by distilling other archs -- and dimly recall not being able to use
ia64 for some reason, or maybe I'm remembering wrong.  I never felt
I completely understood the interaction with the sometimes-missed
timer interrupt and arch-independent timer handling, and some of the
other archs seemed to be unexpectedly different from each other.

How's that for a useless comment?! :-)

	-P

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

* Re: [parisc-linux] travel backwards in time?
  2001-10-18 20:21 ` [parisc-linux] travel backwards in time? Randolph Chung
  2001-10-18 23:23   ` Paul Bame
@ 2001-11-29 18:58   ` Grant Grundler
  1 sibling, 0 replies; 5+ messages in thread
From: Grant Grundler @ 2001-11-29 18:58 UTC (permalink / raw)
  To: parisc-linux

Randolph Chung wrote:
> Recently Grant and I have observed several hangs in do_gettimeofday on a
> c3k running 32 or 64-bit kernels (UP). 
> 
> The symptom we see is gettimeoffset returns a negative number which
> results in a huge (unsigned) usec offset in do_gettimeofday, which ends
> up spinning in a while loop.
...
> The last_tick adjustment looks a bit odd. Looking at ia64, it looks more
> like this:
> 
>         last_tick -= clocktick * (jiffies - wall_jiffies + 1);

For the record, this fix was committed in one of the 2.4.14-pa5
http://lists.parisc-linux.org/pipermail/parisc-linux-cvs/2001-November/030021.html

I'm still not 100% certain all our time keeping code is correct.
But I'm comfortable this patch fixes the problem we saw and
does not introduce any new ones.

grant

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

* [parisc-linux] 2.4.16-pa12 broken on c3000
@ 2001-12-04  7:17 ` Randolph Chung
  2001-12-05 17:45   ` Grant Grundler
  0 siblings, 1 reply; 5+ messages in thread
From: Randolph Chung @ 2001-12-04  7:17 UTC (permalink / raw)
  To: parisc-linux

Looks like -pa12 enabled some #if 0 code in arch/parisc/mm/init.c that
is causing things to die. Both Grant and I saw ifconfig abort when
the free_initmem code was enabled. Reverting back to 1.43 worked for
me...

Looks like Helge checked that in.. Helge, can you please take a look?

Soft power is very cool though! :-)

thanks,
randolph
-- 
   @..@                                         http://www.TauSq.org/
  (----)
 ( >__< )
 ^^ ~~ ^^

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

* Re: [parisc-linux] 2.4.16-pa12 broken on c3000
  2001-12-04  7:17 ` [parisc-linux] 2.4.16-pa12 broken on c3000 Randolph Chung
@ 2001-12-05 17:45   ` Grant Grundler
  0 siblings, 0 replies; 5+ messages in thread
From: Grant Grundler @ 2001-12-05 17:45 UTC (permalink / raw)
  To: parisc-linux

[ old news - cleaning out my inbox ]

Randolph Chung wrote:
> Looks like -pa12 enabled some #if 0 code in arch/parisc/mm/init.c that
> is causing things to die. Both Grant and I saw ifconfig abort when
> the free_initmem code was enabled. Reverting back to 1.43 worked for
> me...

Fixed. my bad. removed __init in PCI config space code path.

FYI, IOAQ pointed at the culprit: lba_device_present()
Should make debugging this kind of problem easy.

grant

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

end of thread, other threads:[~2001-12-05 17:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <randolph@tausq.org>
2001-10-18 20:21 ` [parisc-linux] travel backwards in time? Randolph Chung
2001-10-18 23:23   ` Paul Bame
2001-11-29 18:58   ` Grant Grundler
2001-12-04  7:17 ` [parisc-linux] 2.4.16-pa12 broken on c3000 Randolph Chung
2001-12-05 17:45   ` Grant Grundler

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.