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
--