Re: [PATCH] x86/mm/kaiser: Fix IRQ entries text section mapping
From: Peter Zijlstra
Date: Mon Nov 27 2017 - 03:21:44 EST
On Mon, Nov 27, 2017 at 09:14:48AM +0100, Peter Zijlstra wrote:
> On Sat, Nov 25, 2017 at 05:08:08PM +0100, Thomas Gleixner wrote:
> > On Sat, 25 Nov 2017, Ingo Molnar wrote:
> > > kaiser_add_user_map_ptrs_early(__entry_text_start, __entry_text_end,
> > > __PAGE_KERNEL_RX | _PAGE_GLOBAL);
> > > + kaiser_add_user_map_ptrs_early(__irqentry_text_start, __irqentry_text_end,
> > > + __PAGE_KERNEL_RX | _PAGE_GLOBAL);
> >
> > The bad news is that this maps more stuff than actually needed:
> >
> > ffffffff81ab1c20 T __irqentry_text_start
> > ffffffff81ab1c20 T apic_timer_interrupt
> > ffffffff81ab1cf0 T x86_platform_ipi
> > ffffffff81ab1dc0 T threshold_interrupt
> > ffffffff81ab1e90 T deferred_error_interrupt
> > ffffffff81ab1f60 T thermal_interrupt
> > ffffffff81ab2030 T call_function_single_interrupt
> > ffffffff81ab2100 T call_function_interrupt
> > ffffffff81ab21d0 T reschedule_interrupt
> > ffffffff81ab22a0 T error_interrupt
> > ffffffff81ab2370 T spurious_interrupt
> > ffffffff81ab2440 T irq_work_interrupt
>
> I'm confused though; for IDT we have that trampoline Andy did. So the
> interrupt should land on the entry stack, do the switch magic and then
> call the 'real' IDT entry, no?
>
> So why do these functions need to be mapped at all?
Aah, I see. The switch magic is in the generic macro and thus ends up in
the above functions...