From: Zhang Rui <rui.zhang@intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>, linux-x86 <x86@kernel.org>,
Len Brown <len.brown@intel.com>,
"Chen, Yu C" <yu.c.chen@intel.com>
Subject: Re: Regression: unable to boot after commit bd9240a18edf ("x86/apic: Add TSC_DEADLINE quirk due to errata") - Surface Pro 4 SKL
Date: Tue, 19 Dec 2017 23:43:47 +0800 [thread overview]
Message-ID: <1513698227.2745.15.camel@intel.com> (raw)
In-Reply-To: <20171219153133.b4oxopq7myy2wjje@hirez.programming.kicks-ass.net>
On Tue, 2017-12-19 at 16:31 +0100, Peter Zijlstra wrote:
> On Tue, Dec 19, 2017 at 04:23:07PM +0100, Peter Zijlstra wrote:
> >
> > On Tue, Dec 19, 2017 at 06:48:24PM +0800, Zhang Rui wrote:
> > >
> > > On Mon, 2017-12-18 at 21:28 +0100, Peter Zijlstra wrote:
> > > >
> > > > Hi, can you see if this makes you Surface boot?
> > > >
> > > No, it does not boot.
> > So I'm confused on the lapic calibration.
> >
> > That stuff uses global_clock_event, which is initially the i8253
> > (PIT),
> > but because !PIC this thing won't be there either on your platform.
> >
> > Then we initialize I/O APIC, and your machine has:
> >
> > [ 0.000000] IOAPIC[0]: apic_id 2, version 32, address
> > 0xfec00000, GSI 0-119
> > [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl
> > dfl)
> > [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high
> > level)
> > [ 0.000000] ACPI: IRQ0 used by override.
> > [ 0.000000] ACPI: IRQ9 used by override.
> >
> > So your ACPI table has an override for IRQ2 and routes it to IRQ0.
> >
> > Then we initialize HPET, and we _always_ do
> > hpet_enable_legacy_int(),
> > which sets the LegacyRouting bit. The HPET document says:
> >
> > If the ENABLE_CNF bit and the LEG_RT_CNF bit are both set, then
> > the
> > interrupts will be routed as follows:
> >
> > Timer 0 will be routed to IRQ0 in Non-APIC or IRQ2 in the I/O
> > APIC
> > Timer 1 will be routed to IRQ8 in Non-APIC or IRQ8 in the I/O
> > APIC
> > Timer 2-n will be routed as per the routing in the timer n
> > config registers.
> >
> > If the LegacyReplacement Route bit is set, the individual routing
> > bits
> > for timers 0 and 1 (APIC or FSB) will have no impact.
> >
> > And then we set global_clock_event to &hpet_clockevent.
> >
> > At this point that _SHOULD_ work afaict, even without actual PIC
> > present.
> >
> > Sometime after that we call into calibrate_APIC_clock() -- because
> > !TSC_DEADLINE -- and this is where you get stuck, because
> > global_clock_event is not in fact delivering interrupts.
> >
> > Thomas may have more clue, we'll have to wait for him to have a
> > time-slot available.
> What does your /proc/interrupts look like (on a tsc-deadline boot) ?
>
> 0: is the HPET, LOC: is the lapic/tsc-deadline
>
> On my SKL desktop I get 21 PIT/HPET ticks on CPU0 before lapic takes
> over.
No irq0.
LOC: 220071 210079 184892 176494 Local timer
interrupts
thanks,
rui
next prev parent reply other threads:[~2017-12-19 15:43 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-28 2:08 Regression: unable to boot after commit bd9240a18edf ("x86/apic: Add TSC_DEADLINE quirk due to errata") - Surface Pro 4 SKL Zhang Rui
2017-11-28 8:14 ` Peter Zijlstra
2017-11-28 8:22 ` Zhang Rui
2017-11-28 9:34 ` Thomas Gleixner
2017-11-28 10:59 ` Zhang Rui
2017-11-28 12:36 ` Peter Zijlstra
2017-11-29 14:44 ` Zhang Rui
2017-12-18 20:28 ` Peter Zijlstra
2017-12-19 10:48 ` Zhang Rui
2017-12-19 13:15 ` Peter Zijlstra
2017-12-19 15:23 ` Zhang Rui
2017-12-19 15:23 ` Peter Zijlstra
2017-12-19 15:31 ` Peter Zijlstra
2017-12-19 15:43 ` Zhang Rui [this message]
2017-12-19 15:42 ` Zhang Rui
2017-12-19 16:01 ` Peter Zijlstra
2017-12-19 17:23 ` Peter Zijlstra
2017-12-20 14:08 ` Zhang Rui
2017-12-20 14:48 ` Peter Zijlstra
2017-11-28 9:35 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1513698227.2745.15.camel@intel.com \
--to=rui.zhang@intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yu.c.chen@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.