Re: [BUG] Strange 1-second pauses during Resume-from-RAM

Ingo Molnar
2007-12-02T08:56:45Z

* Jörn Engel <joern@logfs.org> wrote:

> > ah. You should mark pit_read() function as notrace. PIT clocksource
> > is rare. (add the 'notrace' word to the function prototype)
>
> Hardly a change at all. Apart from some offsets, this dump is
> identical.
>
> stopped custom tracer.
> BUG: spinlock recursion on CPU#0, sh/954
> lock: c030f280, .magic: dead4ead, .owner: sh/954, .owner_cpu: 0
> Pid: 954, comm: sh Not tainted 2.6.24-rc3-ge1cca7e8-dirty #3
> [<c0103a04>] show_trace_log_lvl+0x35/0x54
> [<c010450a>] show_trace+0x2c/0x2e
> [<c0104e6d>] dump_stack+0x84/0x8a
> [<c01ded7c>] spin_bug+0xa7/0xae
> [<c01def14>] _raw_spin_lock+0x45/0xfa
> [<c02a02b1>] _spin_lock_irqsave+0x68/0x7a
> [<c01087e2>] pit_read+0xf/0x91
> [<c0130ee1>] get_monotonic_cycles+0xf/0x2d
> [<c013c0e7>] now+0x2a/0x7c
> [<c013c333>] ____trace+0x4d/0x1e8
> [<c013dbeb>] __mcount+0x95/0xa6
> [<c010d354>] mcount+0x14/0x18
> [<c0135a3c>] lock_acquired+0xe/0x1d7
> [<c02a02b9>] _spin_lock_irqsave+0x70/0x7a
> [<c01087e2>] pit_read+0xf/0x91

hm, it seems lock_acquired() [in kernel/lockdep.c] needs to be marked
'notrace' too - otherwise we recurse back into pit_read().

Ingo