Re: Timer panic on boot (r209434)

2010-06-22 Thread Doug Barton
On 06/22/10 12:55, Doug Barton wrote:
 Howdy,
 
 I tried upgrading from r209351 to r209434 and got a panic related to the
 timer stuff while booting. You can see the panic and the backtrace here:
 
 http://people.freebsd.org/~dougb/timer-panic-1.jpg
 http://people.freebsd.org/~dougb/timer-panic-2.jpg
 http://people.freebsd.org/~dougb/timer-panic-3.jpg

Hmmm, that could use a little more detail. :)  I have a Dell laptop with
a core 2 duo processor, running 9-current SMP i386.


Doug

-- 

... and that's just a little bit of history repeating.
-- Propellerheads

Improve the effectiveness of your Internet presence with
a domain name makeover!http://SupersetSolutions.com/

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Timer panic on boot (r209434)

2010-06-22 Thread Alexander Motin
Doug Barton wrote:
 On 06/22/10 12:55, Doug Barton wrote:
 Howdy,

 I tried upgrading from r209351 to r209434 and got a panic related to the
 timer stuff while booting. You can see the panic and the backtrace here:

 http://people.freebsd.org/~dougb/timer-panic-1.jpg
 http://people.freebsd.org/~dougb/timer-panic-2.jpg
 http://people.freebsd.org/~dougb/timer-panic-3.jpg
 
 Hmmm, that could use a little more detail. :)  I have a Dell laptop with
 a core 2 duo processor, running 9-current SMP i386.

Your ACPI seems reports that attimer uses IRQ2, instead of usual IRQ0.
It is either a bug, or it is a very rare feature.

I am not sure it is not a hack, but you may try attached patch. If it
helps, it would be nice it you tried to use i8254 event timer, to check
is this a bug or feature.

-- 
Alexander Motin
diff -ruNp sys/isa.prev/atrtc.c sys/isa/atrtc.c
--- sys/isa.prev/atrtc.c2010-06-22 23:01:13.0 +0300
+++ sys/isa/atrtc.c 2010-06-22 23:01:38.0 +0300
@@ -259,6 +259,7 @@ atrtc_attach(device_t dev)
if (!atrtcclock_disable 
(resource_int_value(device_get_name(dev), device_get_unit(dev),
 clock, i) != 0 || i != 0)) {
+   sc-intr_rid = -1;
if (!(sc-intr_res = bus_alloc_resource(dev, SYS_RES_IRQ,
sc-intr_rid, 8, 8, 1, RF_ACTIVE))) {
device_printf(dev,Can't map interrupt.\n);
diff -ruNp sys/isa.prev/clock.c sys/isa/clock.c
--- sys/isa.prev/clock.c2010-06-22 20:19:00.0 +0300
+++ sys/isa/clock.c 2010-06-22 23:01:27.0 +0300
@@ -535,6 +535,7 @@ attimer_attach(device_t dev)
tc_init(sc-tc);
if (resource_int_value(device_get_name(dev), device_get_unit(dev),
clock, i) != 0 || i != 0) {
+   sc-intr_rid = -1;
if (!(sc-intr_res = bus_alloc_resource(dev, SYS_RES_IRQ,
sc-intr_rid, 0, 0, 1, RF_ACTIVE))) {
device_printf(dev,Can't map interrupt.\n);
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org

Re: Timer panic on boot (r209434)

2010-06-22 Thread Doug Barton
On 06/22/10 13:10, Alexander Motin wrote:
 Doug Barton wrote:
 On 06/22/10 12:55, Doug Barton wrote:
 Howdy,
 
 I tried upgrading from r209351 to r209434 and got a panic related
 to the timer stuff while booting. You can see the panic and the
 backtrace here:
 
 http://people.freebsd.org/~dougb/timer-panic-1.jpg 
 http://people.freebsd.org/~dougb/timer-panic-2.jpg 
 http://people.freebsd.org/~dougb/timer-panic-3.jpg
 
 Hmmm, that could use a little more detail. :)  I have a Dell laptop
 with a core 2 duo processor, running 9-current SMP i386.
 
 Your ACPI seems reports that attimer uses IRQ2, instead of usual
 IRQ0. It is either a bug, or it is a very rare feature.
 
 I am not sure it is not a hack, but you may try attached patch.

Ok, I updated to r209441, then applied your patch. FYI, I applied it in
src/sys/x86/isa/ using -p2. This allowed me to boot, verbose dmesg is at
http://people.freebsd.org/~dougb/dmesg-verbose-norid-patch.txt

 If it helps, it would be nice it you tried to use i8254 event timer,
 to check is this a bug or feature.

Ok, I'm willing to give that a try if you tell me how. :)


Doug

-- 

... and that's just a little bit of history repeating.
-- Propellerheads

Improve the effectiveness of your Internet presence with
a domain name makeover!http://SupersetSolutions.com/

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Timer panic on boot (r209434)

2010-06-22 Thread Alexander Motin
Doug Barton wrote:
 On 06/22/10 13:10, Alexander Motin wrote:
 Doug Barton wrote:
 On 06/22/10 12:55, Doug Barton wrote:
 Howdy,

 I tried upgrading from r209351 to r209434 and got a panic related
 to the timer stuff while booting. You can see the panic and the
 backtrace here:

 http://people.freebsd.org/~dougb/timer-panic-1.jpg 
 http://people.freebsd.org/~dougb/timer-panic-2.jpg 
 http://people.freebsd.org/~dougb/timer-panic-3.jpg
 Hmmm, that could use a little more detail. :)  I have a Dell laptop
 with a core 2 duo processor, running 9-current SMP i386.
 Your ACPI seems reports that attimer uses IRQ2, instead of usual
 IRQ0. It is either a bug, or it is a very rare feature.

 I am not sure it is not a hack, but you may try attached patch.
 
 Ok, I updated to r209441, then applied your patch. FYI, I applied it in
 src/sys/x86/isa/ using -p2. This allowed me to boot, verbose dmesg is at
 http://people.freebsd.org/~dougb/dmesg-verbose-norid-patch.txt
 
 If it helps, it would be nice it you tried to use i8254 event timer,
 to check is this a bug or feature.
 
 Ok, I'm willing to give that a try if you tell me how. :)

Run `sysctl kern.eventtimer.timer2=i8254`, then after few seconds check
messages to see if system liked this timer (it should fall back
automatically if it's not), then check 'vmstat -ia' to see whether irq0
interrupts are arriving, then run 'systat -vm 1' to be absolutely sure.
If `vmstat -ia` won't show irq0 interrupts, try to figure out what else
can arrive instead of it.

-- 
Alexander Motin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Timer panic on boot (r209434)

2010-06-22 Thread Doug Barton
On 06/22/10 14:17, Alexander Motin wrote:
 Run `sysctl kern.eventtimer.timer2=i8254`, then after few seconds check
 messages to see if system liked this timer (it should fall back
 automatically if it's not),

Seems ok. Here is what I got on the console, no error messages in
/var/log/all.

sysctl kern.eventtimer.timer2=i8254
kern.eventtimer.timer2: HPET1Starting kernel event timers: HPET @ 100Hz,
i8254 @
 128Hz
  - i8254
 t_delta 16.01a20d312197c8b0 too long

 then check 'vmstat -ia' to see whether irq0 interrupts are arriving,

This also seems fine:

interrupt  total   rate
???0  0
irq1: atkbd03448  1
stray irq1 0  0
irq0: attimer0 15756  6
stray irq0 0  0
irq3:  0  0
stray irq3 0  0

The total for irq0 is going up consistently.

 then run 'systat -vm 1' to be absolutely sure.

That also seemed fine. Here is a sample:
104 hpet0 uhci

If I did nothing but stare at the screen the value was fairly
consistently 100, with occasional values of 99 or 107. Once I started
moving the mouse it jumped around a little, but stabilized again when I
left the mouse alone.

Should I continue using the HPET timer? Is it better in some way?
Anything else I can do to help?


Doug

-- 

... and that's just a little bit of history repeating.
-- Propellerheads

Improve the effectiveness of your Internet presence with
a domain name makeover!http://SupersetSolutions.com/

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Timer panic on boot (r209434)

2010-06-22 Thread Alexander Motin
Doug Barton wrote:
 On 06/22/10 14:17, Alexander Motin wrote:
 Run `sysctl kern.eventtimer.timer2=i8254`, then after few seconds check
 messages to see if system liked this timer (it should fall back
 automatically if it's not),
 
 Seems ok. Here is what I got on the console, no error messages in
 /var/log/all.
 
 sysctl kern.eventtimer.timer2=i8254
 kern.eventtimer.timer2: HPET1Starting kernel event timers: HPET @ 100Hz,
 i8254 @
  128Hz
   - i8254
  t_delta 16.01a20d312197c8b0 too long
 
 then check 'vmstat -ia' to see whether irq0 interrupts are arriving,
 
 This also seems fine:
 
 interrupt  total   rate
 ???0  0
 irq1: atkbd03448  1
 stray irq1 0  0
 irq0: attimer0 15756  6
 stray irq0 0  0
 irq3:  0  0
 stray irq3 0  0
 
 The total for irq0 is going up consistently.

OK, thanks. It means that your ACPI is lying for some reason. I'll
probably commit this patch tomorrow.

 Should I continue using the HPET timer? 

As you wish.

 Is it better in some way?

Comparing to what? Comparing to LAPIC - it is not dying in C3. Comparing
to RTC - if is faster and much more flexible. Comparing to i8254 - it
can work per-CPU and supports one-shot mode, both not very important
now, but should benefit later.

 Anything else I can do to help?

Find any more issues to fix. :)

As you have latest HEAD, you may try my latest addition (r209440) - HPET
legacy route support. It should allow HPET to work per-CPU on your
hardware. To enable it, add such lines to /boot/loader.conf:
hint.atrtc.0.clock=0
hint.attimer.0.clock=0
hint.hpet.0.legacy_route=1

-- 
Alexander Motin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org