Re: Per-cpu IDT patch
Manuel Bouyer <[email protected]> Sat, 4 Jul 2020 11:32:48 +0200
| Newsgroups | gmane.os.netbsd.ports.x86-64,gmane.os.netbsd.ports.i386 |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Jul 03, 2020 at 02:11:43PM +0900, s ymgch wrote: > 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. I guess idt_vec_init_cpu_md() is not used by XENPV at all ? If so I guess you can remove #ifndef XENPV here If is it used I think it can not work without setting the idt back to read-only anyway. Othervise I don't see problems at first glance. I tested an amd64 domU in PV, PVH and PVHVM mode. -- Manuel Bouyer <[email protected]> NetBSD: 26 ans d'experience feront toujours la difference --