Re: [kvm-devel] [RFC/PATCH 01/15] preparation: provide hook to enable pgstes in user pagetable
From: Carsten Otte <hidden>
Date: 2008-03-21 19:03:30
Also in:
kvm, linux-mm
Dave Hansen wrote:
On Thu, 2008-03-20 at 21:35 +0100, Carsten Otte wrote:quoted
Dave Hansen wrote:quoted
Well, and more fundamentally: do we really want dup_mm() able to be called from other code? Maybe we need a bit more detailed justification why fork() itself isn't good enough. It looks to me like they basically need an arch-specific argument to fork, telling the new process's page tables to take the fancy new bit. I'm really curious how this new stuff is going to get used. Are you basically replacing fork() when creating kvm guests?No. The trick is, that we do need bigger page tables when running guests: our page tables are usually 2k, but when running a guest they're 4k to track both guest and host dirty&reference information. This looks like this: *----------* *2k PTE's * *----------* *2k PGSTE * *----------* We don't want to waste precious memory for all page tables. We'd like to have one kernel image that runs regular server workload _and_ guests.That makes a lot of sense. Is that layout (the shadow and regular stacked together) specified in hardware somehow, or was it just chosen?
It's defined by hardware. The chip just adds +2k to the ptep to get to the corresponding pgste. Both pte and pgste are 64bit per page. I know Heiko and Martin have thought a lot about possible races. I'll have to leave your question on the race against pfault open for them. Btw: thanks a lot for reviewing our changes :-) cheers, Carsten