Messages in this thread |  | | From | Andy Lutomirski <> | Date | Mon, 27 Nov 2017 19:41:20 -0800 | Subject | Re: [PATCH] x86/idt: load idt early in start_secondary |
| |
On Mon, Nov 27, 2017 at 6:21 AM, Chunyu Hu <chuhu@redhat.com> 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@kernel.org>
Except that this is presumably missing a Cc: stable.
|  |