2006-12-04 14:58:50

by Avi Kivity

[permalink] [raw]
Subject: [PATCH] KVM: mmu: honor global bit on huge pages

The kvm mmu attempts to cache global translations, however it misses on
global huge page translation (which is what most global pages are).

By caching global huge page translations, boot time of fc5 i386 on i386
is reduced from ~35 seconds to ~24 seconds.

Signed-off-by: Avi Kivity <[email protected]>

Index: linux-2.6/drivers/kvm/paging_tmpl.h
===================================================================
--- linux-2.6.orig/drivers/kvm/paging_tmpl.h
+++ linux-2.6/drivers/kvm/paging_tmpl.h
@@ -105,7 +105,7 @@ static void FNAME(set_pde)(struct kvm_vc
if (PTTYPE == 32 && is_cpuid_PSE36())
gaddr |= (guest_pde & PT32_DIR_PSE36_MASK) <<
(32 - PT32_DIR_PSE36_SHIFT);
- *shadow_pte = (guest_pde & PT_NON_PTE_COPY_MASK) |
+ *shadow_pte = (guest_pde & (PT_NON_PTE_COPY_MASK | PT_GLOBAL_MASK)) |
((guest_pde & PT_DIR_PAT_MASK) >>
(PT_DIR_PAT_SHIFT - PT_PAT_SHIFT));
set_pte_common(vcpu, shadow_pte, gaddr,


2006-12-04 15:26:08

by Renato S. Yamane

[permalink] [raw]
Subject: Re: [PATCH] KVM: mmu: honor global bit on huge pages

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Em 04-12-2006 12:57, Avi Kivity escreveu:
> The kvm mmu attempts to cache global translations, however it misses on
> global huge page translation (which is what most global pages are).
>
> By caching global huge page translations, boot time of fc5 i386 on i386
> is reduced from ~35 seconds to ~24 seconds.

I try use this patch in Kernel 2.6.19-git5, but I receive an error message:

/linux-2.6.19# patch -p1 < /home/yamane/Desktop/kernel/kvm.patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
- --------------------------
|--- linux-2.6.orig/drivers/kvm/paging_tmpl.h
|+++ linux-2.6/drivers/kvm/paging_tmpl.h
- --------------------------
File to patch:

Whats wrong? :-(

Best regards,
- --
Renato S. Yamane
Fingerprint: 68AE A381 938A F4B9 8A23 D11A E351 5030 D420 515A
PGP Server: http://pgp.mit.edu/ --> KeyID: 0xD420515A
<http://www.renatoyamane.com>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org

iD8DBQFFdD4M41FQMNQgUVoRAqLLAJ0QY0x67w7TrYFqJqgCZ3XT3i35IgCeNfvy
+YYKNzrY46tvbM+nf9u1lc4=
=gkQV
-----END PGP SIGNATURE-----

2006-12-04 15:29:22

by Avi Kivity

[permalink] [raw]
Subject: Re: [PATCH] KVM: mmu: honor global bit on huge pages

Renato S. Yamane wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Em 04-12-2006 12:57, Avi Kivity escreveu:
>
>> The kvm mmu attempts to cache global translations, however it misses on
>> global huge page translation (which is what most global pages are).
>>
>> By caching global huge page translations, boot time of fc5 i386 on i386
>> is reduced from ~35 seconds to ~24 seconds.
>>
>
> I try use this patch in Kernel 2.6.19-git5, but I receive an error message:
>
> /linux-2.6.19# patch -p1 < /home/yamane/Desktop/kernel/kvm.patch
> can't find file to patch at input line 3
> Perhaps you used the wrong -p or --strip option?
> The text leading up to this was:
> - --------------------------
> |--- linux-2.6.orig/drivers/kvm/paging_tmpl.h
> |+++ linux-2.6/drivers/kvm/paging_tmpl.h
> - --------------------------
> File to patch:
>
> Whats wrong? :-(
>

This patch is for kvm, which lives in the -mm kernel. Apply the latest
-mm patch first.


--
error compiling committee.c: too many arguments to function

2006-12-04 15:32:58

by Avi Kivity

[permalink] [raw]
Subject: Re: [PATCH] KVM: mmu: honor global bit on huge pages

Avi Kivity wrote:
>>
>> Whats wrong? :-(
>>
>
> This patch is for kvm, which lives in the -mm kernel. Apply the
> latest -mm patch first.
>
>

Oh, and visit http://kvm.sourceforge.net first :)

--
error compiling committee.c: too many arguments to function