Module Name: src Committed By: yamaguchi Date: Tue Jul 14 00:45:53 UTC 2020
Modified Files: src/sys/arch/amd64/amd64: db_interface.c machdep.c src/sys/arch/amd64/conf: ALL src/sys/arch/amd64/include: segments.h src/sys/arch/i386/conf: ALL src/sys/arch/i386/i386: db_interface.c machdep.c trap.c src/sys/arch/i386/include: segments.h src/sys/arch/x86/conf: files.x86 src/sys/arch/x86/include: cpu.h cpuvar.h pmap.h src/sys/arch/x86/x86: cpu.c hyperv.c idt.c intr.c lapic.c pmap.c svs.c src/sys/arch/xen/x86: cpu.c src/sys/arch/xen/xen: hypervisor.c src/sys/dev/hyperv: vmbusvar.h src/sys/dev/nvmm/x86: nvmm_x86_vmx.c Log Message: Introduce per-cpu IDTs This is realized by following modifications: - Add IDT pages and its allocation maps for each cpu in "struct cpu_info" - Load per-cpu IDTs at cpu_init_idt(struct cpu_info*) - Copy the IDT entries for cpu0 to other CPUs at attach - These are, for example, exceptions, db, system calls, etc. And, added a kernel option named PCPU_IDT to enable the feature. To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/arch/amd64/amd64/db_interface.c cvs rdiff -u -r1.355 -r1.356 src/sys/arch/amd64/amd64/machdep.c cvs rdiff -u -r1.155 -r1.156 src/sys/arch/amd64/conf/ALL cvs rdiff -u -r1.36 -r1.37 src/sys/arch/amd64/include/segments.h cvs rdiff -u -r1.493 -r1.494 src/sys/arch/i386/conf/ALL cvs rdiff -u -r1.84 -r1.85 src/sys/arch/i386/i386/db_interface.c cvs rdiff -u -r1.830 -r1.831 src/sys/arch/i386/i386/machdep.c cvs rdiff -u -r1.303 -r1.304 src/sys/arch/i386/i386/trap.c cvs rdiff -u -r1.68 -r1.69 src/sys/arch/i386/include/segments.h cvs rdiff -u -r1.116 -r1.117 src/sys/arch/x86/conf/files.x86 cvs rdiff -u -r1.126 -r1.127 src/sys/arch/x86/include/cpu.h cvs rdiff -u -r1.52 -r1.53 src/sys/arch/x86/include/cpuvar.h cvs rdiff -u -r1.123 -r1.124 src/sys/arch/x86/include/pmap.h cvs rdiff -u -r1.194 -r1.195 src/sys/arch/x86/x86/cpu.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/x86/x86/hyperv.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/x86/x86/idt.c cvs rdiff -u -r1.151 -r1.152 src/sys/arch/x86/x86/intr.c cvs rdiff -u -r1.83 -r1.84 src/sys/arch/x86/x86/lapic.c cvs rdiff -u -r1.399 -r1.400 src/sys/arch/x86/x86/pmap.c cvs rdiff -u -r1.37 -r1.38 src/sys/arch/x86/x86/svs.c cvs rdiff -u -r1.138 -r1.139 src/sys/arch/xen/x86/cpu.c cvs rdiff -u -r1.86 -r1.87 src/sys/arch/xen/xen/hypervisor.c cvs rdiff -u -r1.5 -r1.6 src/sys/dev/hyperv/vmbusvar.h cvs rdiff -u -r1.61 -r1.62 src/sys/dev/nvmm/x86/nvmm_x86_vmx.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.