From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: Re: linux-next: Tree for June 13: IO APIC breakage on HP nx6325 Date: Fri, 20 Jun 2008 12:44:52 +0200 Message-ID: <20080620104452.GA7439@elte.hu> References: <20080613232214.394fd6fd.sfr@canb.auug.org.au> <200806180053.40044.rjw@sisk.pl> <200806190011.38548.rjw@sisk.pl> <20080619093541.GC15228@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-acpi-owner@vger.kernel.org To: "Maciej W. Rozycki" Cc: "Rafael J. Wysocki" , Stephen Rothwell , linux-next@vger.kernel.org, LKML , Thomas Gleixner , ACPI Devel Maling List , Len Brown List-Id: linux-next.vger.kernel.org * Maciej W. Rozycki wrote: > As expressed before, unfortunately a lot of diagnostic APIC messages > have been disabled in the 64-bit variation. The result is I was > unable to get good results from my Internet search for bootstrap logs > from other systems using this southbridge. Fortunately at least ACPI > messages are present and what I noticed is some of the systems do not > provide an IRQ0 override and still work correctly. [...] okay, so when those files are unified, the diagnostics should remain and be prominent. (or even be put back into the 64-bit version right now.) > > does PIT programming matter? One detail which might matter and which > > touches IRQ0 generation is the clockevent driver on nohz/highres. See > > arch/x86/kernel/i8253.c:init_pit_timer(): > > > > case CLOCK_EVT_MODE_SHUTDOWN: > > case CLOCK_EVT_MODE_UNUSED: > > if (evt->mode == CLOCK_EVT_MODE_PERIODIC || > > evt->mode == CLOCK_EVT_MODE_ONESHOT) { > > outb_pit(0x30, PIT_MODE); > > outb_pit(0, PIT_CH0); > > outb_pit(0, PIT_CH0); > > } > > pit_disable_clocksource(); > > break; > > > > case CLOCK_EVT_MODE_ONESHOT: > > /* One shot setup */ > > pit_disable_clocksource(); > > outb_pit(0x38, PIT_MODE); > > break; > > It does, though not necessarily in this case. In principle all this > 8254-through-APIC timer validation code assumes the source retriggers > automatically and if an edge is lost because the APIC input targeted > is masked or not configured yet, another one will follow shortly by > itself. It used to be the case when this code was implemented as we > never used any of the single-shot modes of the 8254 back then. > > Is it now possible at the time check_timer() is called the 8254 has > been put in one of the single-shot modes? If so, then additional code > has to be put in place either to switch the timer into the periodic > mode for the duration of check_timer() or to rearm the timer if in a > single-shot mode each time timer_irq_works() is called. that's a question for Thomas i guess, he wrote the PIT single-shot code. Ingo