Per-cpu IDT patch

s ymgch <[email protected]> Fri, 3 Jul 2020 14:11:43 +0900
Newsgroups gmane.os.netbsd.ports.x86-64,gmane.os.netbsd.ports.i386
Message-ID <CAPnD6HpOJ6KcHmfWysLg17Z7vPQzA6iUbAJAB+EWS+=zEB6fyg@mail.gmail.com>
Hi all,

I tried to make an IDT per-cpu. The patch is here:
http://www.netbsd.org/~yamaguchi/pcpu-idt.patch

The summary of modifications is as follows.
- Add an IDT pointer and idt_allocmap into struct cpu_info
- Change prototype of cpu_init_idt()
   - void => struct cpu_info*
   - for loading an IDT address in struct cpu_info*
- Copy a part of IDT entries from cpu 0 at attaching a CPU
   - for the same entries, for example, exceptions, db, etc.

This function can be enabled by PCPU_IDT option that is newly provided.

Does this patch look good?
Please let me know if you have any comments about this.