When switching to a kernel thread we no longer set the page directory.

This is not necessary, since userland teams' page directories also
contain the kernel mappings, and avoids unnecessary TLB flushes. To make
that possible the vm_translation_map_arch_info objects are reference
counted now.

This optimization reduces the kernel time of the Haiku build on my
machine with SMP disabled a few percent, but interestingly the total
time decreases only marginally. Haven't tested with SMP yet, but for
full impact CPU affinity would be needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28287 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-10-22 15:12:32 +00:00
parent 204b1f011b
commit 9a42ad7a77
6 changed files with 139 additions and 84 deletions
@@ -238,6 +238,8 @@ typedef struct arch_cpu_info {
int model;
int extended_model;
struct vm_translation_map_arch_info* active_translation_map;
// local TSS for this cpu
struct tss tss;
struct tss double_fault_tss;