Le 04/01/2018 à 15:50, Valery Ushakov a écrit :
On Thu, Jan 04, 2018 at 13:36:30 +0000, Maxime Villard wrote:Module Name: src Committed By: maxv Date: Thu Jan 4 13:36:30 UTC 2018 Modified Files: src/sys/arch/amd64/amd64: genassym.cf locore.S machdep.c src/sys/arch/i386/i386: genassym.cf locore.S machdep.c src/sys/arch/x86/include: cpu.h src/sys/arch/x86/x86: intr.c pmap.c sys_machdep.c Log Message: Allocate the TSS area dynamically. This way cpu_info and cpu_tss can be put in separate pages.Splitting tss and cpu info speeds up NetBSD under virtualbox without VT-x quite a bit as vbox traps all TSS accesses and so all the same-page cpu_info accesses are also trapped, slowing things down.
Did you actually test? And if so, did my commit really change something? I'm figuring out we might have had a great performance problem here: the cpu_info structure is allocated from kmem, which can borrow VA from the direct map. Since the direct map was mapped with 1GB superpages (or 2MB otherwise), it looks like you could get the whole gigabyte to fault all the time. I guess I should pull up this change [1] to NetBSD-8 and 7. Maxime [1] http://mail-index.netbsd.org/source-changes/2018/01/07/msg090941.html
