Date: Mon, 04 Jul 2011 14:37:41 -0700 From: Doug Barton <dougb@FreeBSD.org> To: Alexander Motin <mav@FreeBSD.org> Cc: freebsd-current@FreeBSD.org Subject: Re: My problems with stability on -current Message-ID: <4E1232A5.3030004@FreeBSD.org> In-Reply-To: <4DCA73F6.70707@FreeBSD.org> References: <4DC25396.1070909@dougbarton.us> <4DCA1C06.6040505@FreeBSD.org> <4DCA73F6.70707@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 05/11/2011 04:33, Alexander Motin wrote: > On 11.05.2011 08:17, Doug Barton wrote: >> I had an interesting result doing nothing but switching from HPET to >> LAPIC ... no crash. Still on the same version of -current (r221566) the >> only thing I've done is to add kern.eventtimer.timer="LAPIC" to >> /boot/loader.conf, and so far I haven't been able to get it to crash no >> matter how much I compile, or how much other stuff I do in the >> background. I _can_ get the system heavily loaded enough so that the >> mouse can drag across the screen, windows take visible time to repaint, >> etc. That happens with a load average of 4+ on this core 2 duo. But >> other than that (which is not altogether unreasonable) the system has >> been very stable for a couple of days now. >> >> Does that suggest a next step in terms of what to test? > > The fact that LAPIC is working fine can mean that problem is either HPET > specific or non-per-CPU timers specific. To check that you could try to > use i8254 timer in one-shot mode: > hint.attimer.0.timecounter=0 > kern.eventtimer.timer="i8254" > > , or use HPET in per-CPU mode: > hint.atrtc.0.clock=0 > hint.attimer.0.clock=0 > hint.hpet.X.legacy_route=1 > > But the most informative would be to see what's going on with HPET > interrupts during the freezes. With HPET hardware it is very easy to > loose interrupt. And the lost interrupt means problem for many things. > There are some workarounds made for that, but I can't be sure. For that > case you could experiment with this patch: > --- acpi_hpet.c.prev 2010-12-25 11:28:45.000000000 +0200 > +++ acpi_hpet.c 2011-05-11 14:30:59.000000000 +0300 > @@ -190,7 +190,7 @@ restart: > bus_write_4(sc->mem_res, HPET_TIMER_COMPARATOR(t->num), > t->next); > } > - if (fdiv < 5000) { > + if (1 || fdiv < 5000) { > bus_read_4(sc->mem_res, HPET_TIMER_COMPARATOR(t->num)); > now = bus_read_4(sc->mem_res, HPET_MAIN_COUNTER); FYI, I have been running this patch since you sent it, and haven't crashed under high load since. -- Nothin' ever doesn't change, but nothin' changes much. -- OK Go Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E1232A5.3030004>