From: Thomas Gleixner <tglx@linutronix.de>
To: Juergen Gross <jgross@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>, Peter Anvin <hpa@zytor.com>,
Peter Zijlstra <peterz@infradead.org>,
Andy Lutomirski <luto@kernel.org>, Borislav Petkov <bp@alien8.de>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [patch V2 35/44] x86/idt: Switch early trap init to IDT tables
Date: Sat, 26 Aug 2017 15:05:48 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.2.20.1708261458370.2093@nanos> (raw)
In-Reply-To: <e92da904-7569-0916-2a3a-a65ac55cb408@suse.com>
On Sat, 26 Aug 2017, Juergen Gross wrote:
> On 26/08/17 10:16, Thomas Gleixner wrote:
> > early_trap_init() is called from setup_arch(), not from
> > x86_64_start_kernel().
> >
> > This patch merily renames the function and moves the code into a different
> > source file. So it's not changing the behaviour in any way.
>
> It does: the IDT entries are now statically defined. Before that any
> call of set_intr_gate() would have registered the trap handler with
> the hypervisor, now this is done only when the IDT is being activated.
> Boris' patch is doing that.
The IDT entries are not statically defined, bcause that's impossible as
that would require the linker to split the address into bits and pieces and
then it would require relocation entries which do the same split again.
+void __init idt_setup_early_traps(void)
+{
+ idt_setup_from_table(idt_table, early_idts, ARRAY_SIZE(early_idts));
+}
It sets up the IDT entries from the table instead of having a gazillion
calls to set_intr_gate() in the code. So that ends up in write_idt_entry()
which is paravirtualized and ends up where it ended up before.
What occured to me right now, is that the patch removes:
load_idt(&idt_descr);
from the original function without adding it to the new one. So that needs
to be fixed, but not in the XEN code. It simply wants to be added to
idt_setup_early_traps(). I'll send out a V3 of that particular patch.
Thanks,
tglx
next prev parent reply other threads:[~2017-08-26 13:05 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-25 21:46 [patch V2 00/44] x86: Cleanup IDT code Thomas Gleixner
2017-08-25 21:46 ` [patch V2 01/44] x86/irq: Remove vector_used_by_percpu_irq() Thomas Gleixner
2017-08-25 21:46 ` [patch V2 02/44] x86/irq: Unexport used_vectors Thomas Gleixner
2017-08-25 21:46 ` [patch V2 03/44] x86/irq: Get rid of the first_system_vector bogisity Thomas Gleixner
2017-08-25 21:46 ` [patch V2 04/44] x86/irq: Remove duplicated used_vectors definition Thomas Gleixner
2017-08-25 21:46 ` [patch V2 05/44] x86/boot: Move EISA setup to a proper place Thomas Gleixner
2017-08-25 21:46 ` [patch V2 06/44] x86/tracing: Introduce a static key for exception tracing Thomas Gleixner
2017-08-25 21:46 ` [patch V2 07/44] x86/traps: Simplify pagefault tracing logic Thomas Gleixner
2017-08-25 21:46 ` [patch V2 08/44] x86/apic: Remove the duplicated tracing version of local_timer_interrupt Thomas Gleixner
2017-08-25 21:46 ` [patch V2 09/44] x86/apic: Use this_cpu_ptr in local_timer_interrupt Thomas Gleixner
2017-08-25 21:46 ` [patch V2 10/44] x86/irq: Get rid of duplicated trace_x86_platform_ipi() code Thomas Gleixner
2017-08-25 21:46 ` [patch V2 11/44] x86/apic: Remove the duplicated tracing versions of interrupts Thomas Gleixner
2017-08-25 21:47 ` [patch V2 12/44] x86/irqwork: Get rid of duplicated tracing interrupt code Thomas Gleixner
2017-08-25 21:47 ` [patch V2 13/44] x86/mce: Remove " Thomas Gleixner
2017-08-25 21:47 ` [patch V2 14/44] x86/smp: Remove pointless duplicated " Thomas Gleixner
2017-08-25 21:47 ` [patch V2 15/44] x86/smp: Use static key for reschedule interrupt tracing Thomas Gleixner
2017-08-25 21:47 ` [patch V2 16/44] x86/idt: Remove tracing idt completely Thomas Gleixner
2017-08-25 21:47 ` [patch V2 17/44] x86/idt: Cleanup the i386 low level entry macros Thomas Gleixner
2017-08-25 21:47 ` [patch V2 18/44] x86/tracing: Disentangle pagefault and resched IPI tracing key Thomas Gleixner
2017-08-25 21:47 ` [patch V2 19/44] x86/ipi: Make platform IPI depend on APIC Thomas Gleixner
2017-08-25 21:47 ` [patch V2 20/44] x86/irq_work: Make it " Thomas Gleixner
2017-08-25 21:47 ` [patch V2 21/44] x86/tracing: Build tracepoints only when they are used Thomas Gleixner
2017-08-25 21:47 ` [patch V2 22/44] x86/idt: Unify gate_struct handling for 32/64bit Thomas Gleixner
2017-08-25 21:47 ` [patch V2 23/44] x86/percpu: Use static initializer for GDT entry Thomas Gleixner
2017-08-25 21:47 ` [patch V2 24/44] x86/fpu: Use bitfield accessors for desc_struct Thomas Gleixner
2017-08-25 21:47 ` [patch V2 25/44] x86: Replace access to desc_struct:a/b fields Thomas Gleixner
2017-08-26 2:16 ` Boris Ostrovsky
2017-08-25 21:47 ` [patch V2 26/44] x86/gdt: Use bitfields for initialization Thomas Gleixner
2017-08-25 21:47 ` [patch V2 27/44] x86/ldttss: Cleanup 32bit descriptors Thomas Gleixner
2017-08-25 21:47 ` [patch V2 28/44] x86/idt: Create file for IDT related code Thomas Gleixner
2017-08-25 21:47 ` [patch V2 29/44] x86/idt: Move 32bit idt_descr to C code Thomas Gleixner
2017-08-25 21:47 ` [patch V2 30/44] x86/idt: Remove unused set_trap_gate() Thomas Gleixner
2017-08-25 21:47 ` [patch V2 31/44] x86/idt: Consolidate IDT invalidation Thomas Gleixner
2017-08-25 21:47 ` [patch V2 32/44] x86/idt: Move early IDT handler setup to IDT code Thomas Gleixner
2017-08-25 21:47 ` [patch V2 33/44] x86/idt: Move early IDT setup out of 32bit asm Thomas Gleixner
2017-08-25 21:47 ` [patch V2 34/44] x86/idt: Prepare for table based init Thomas Gleixner
2017-08-25 21:47 ` [patch V2 35/44] x86/idt: Switch early trap init to IDT tables Thomas Gleixner
2017-08-26 2:24 ` Boris Ostrovsky
2017-08-26 8:16 ` Thomas Gleixner
2017-08-26 10:59 ` Juergen Gross
2017-08-26 13:05 ` Thomas Gleixner [this message]
2017-08-26 15:07 ` Boris Ostrovsky
2017-08-25 21:47 ` [patch V2 36/44] x86/idt: Move debug stack init to table based Thomas Gleixner
2017-08-25 21:47 ` [patch V2 37/44] x86/idt: Move ist stack based traps to table init Thomas Gleixner
2017-08-25 21:47 ` [patch V2 38/44] x86/idt: Move regular trap init to tables Thomas Gleixner
2017-08-25 21:47 ` [patch V2 39/44] x86/idt: Move APIC gate initialization " Thomas Gleixner
2017-08-25 21:47 ` [patch V2 40/44] x86/idt: Move interrupt gate initialization to IDT code Thomas Gleixner
2017-08-25 21:47 ` [patch V2 41/44] x86/idt: Remove unused functions/inlines Thomas Gleixner
2017-08-25 21:47 ` [patch V2 42/44] x86/idt: Deinline setup functions Thomas Gleixner
2017-08-25 21:47 ` [patch V2 43/44] x86/idt: Simplify alloc_intr_gate Thomas Gleixner
2017-08-25 21:47 ` [patch V2 44/44] x86/idt: Hide set_intr_gate() Thomas Gleixner
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=alpine.DEB.2.20.1708261458370.2093@nanos \
--to=tglx@linutronix.de \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®