Re: [PATCH] x86/idt: load idt early in start_secondary

From: Andy Lutomirski
Date: Tue Nov 28 2017 - 00:28:25 EST


On Mon, Nov 27, 2017 at 8:57 PM, Chunyu Hu <chuhu@xxxxxxxxxx> wrote:
>
>
> ----- Original Message -----
>> From: "Andy Lutomirski" <luto@xxxxxxxxxx>
>> To: "Chunyu Hu" <chuhu@xxxxxxxxxx>
>> Cc: "Thomas Gleixner" <tglx@xxxxxxxxxxxxx>, "Ingo Molnar" <mingo@xxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>,
>> "Peter Zijlstra" <peterz@xxxxxxxxxxxxx>, "Andrew Lutomirski" <luto@xxxxxxxxxx>, "Borislav Petkov" <bp@xxxxxxxxx>,
>> "Steven Rostedt" <rostedt@xxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx
>> Sent: Tuesday, November 28, 2017 11:41:20 AM
>> Subject: Re: [PATCH] x86/idt: load idt early in start_secondary
>>
>> On Mon, Nov 27, 2017 at 6:21 AM, Chunyu Hu <chuhu@xxxxxxxxxx> wrote:
>> > For ap, idt is first loaded in cpu_init() with load_current_idt(),
>> > that is to say, no exception can be handled before there. And then
>> > the idt_table has been completed by the bp.
>> >
>> > While there are some WARNs which needs the UD exception handling
>> > in the early boot code might be triggered when something uexpected
>> > happens during boot. In that case, cpu would fail to boot as the
>> > exception can't be handled. A WARNing during boot is not usually
>> > meaning the system could not boot.
>> >
>> > One use case is when ftrace=function is setup in kernel cmdline, the
>> > ftrace callback function will be called for every traced function.
>> > And in my case, the first traced function is load_ucode_ap. And there
>> > are WARN()s in function trace callback handling, it failed to reboot
>> > as one of the WARN()s is triggered before load_current_idt() executed.
>> >
>> > To make WARN()s can work earlier to ap, we load the idt_table early
>> > in start_secondary, and keep the second time idt load in cpu_init,
>> > as there is a load_ucode_ap() there.
>>
>> Reviewed-by: Andy Lutomirski <luto@xxxxxxxxxx>
>>
>> Except that this is presumably missing a Cc: stable.
>
> Do I need to resend this origin version and Cc stable?

I imagine that Ingo can add it.

>
>>
>
> --
> Regards,
> Chunyu Hu
>