From: Carsten Otte <cotte@de.ibm.com>
To: Dave Hansen <haveblue@us.ibm.com>
Cc: Christian Ehrhardt <EHRHARDT@de.ibm.com>,
hollisb@us.ibm.com, arnd@arndb.de,
Linux Memory Management List <linux-mm@kvack.org>,
carsteno@de.ibm.com, mschwid2@linux.vnet.ibm.com,
heicars2@linux.vnet.ibm.com, jeroney@us.ibm.com,
borntrae@linux.vnet.ibm.com,
virtualization@lists.linux-foundation.org,
kvm-devel@lists.sourceforge.net, rvdheij@gmail.com,
Olaf Schnapper <os@de.ibm.com>,
jblunck@suse.de, "Zhang, Xiantao" <xiantao.zhang@intel.com>
Subject: Re: [kvm-devel] [RFC/PATCH 01/15] preparation: provide hook to enable pgstes in user pagetable
Date: Fri, 21 Mar 2008 20:03:30 +0100 [thread overview]
Message-ID: <47E40682.3020209@de.ibm.com> (raw)
In-Reply-To: <1206124176.30471.27.camel@nimitz.home.sr71.net>
Dave Hansen wrote:
> On Thu, 2008-03-20 at 21:35 +0100, Carsten Otte wrote:
>> Dave Hansen wrote:
>>> 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
WARNING: multiple messages have this Message-ID (diff)
From: Carsten Otte <cotte@de.ibm.com>
To: Dave Hansen <haveblue@us.ibm.com>
Cc: carsteno@de.ibm.com, Jeremy Fitzhardinge <jeremy@goop.org>,
Christian Ehrhardt <EHRHARDT@de.ibm.com>,
hollisb@us.ibm.com, arnd@arndb.de, borntrae@linux.vnet.ibm.com,
kvm-devel@lists.sourceforge.net, heicars2@linux.vnet.ibm.com,
jeroney@us.ibm.com, Avi Kivity <avi@qumranet.com>,
virtualization@lists.linux-foundation.org,
Linux Memory Management List <linux-mm@kvack.org>,
mschwid2@linux.vnet.ibm.com, rvdheij@gmail.com,
Olaf Schnapper <os@de.ibm.com>,
jblunck@suse.de, "Zhang, Xiantao" <xiantao.zhang@intel.com>
Subject: Re: [kvm-devel] [RFC/PATCH 01/15] preparation: provide hook to enable pgstes in user pagetable
Date: Fri, 21 Mar 2008 20:03:30 +0100 [thread overview]
Message-ID: <47E40682.3020209@de.ibm.com> (raw)
In-Reply-To: <1206124176.30471.27.camel@nimitz.home.sr71.net>
Dave Hansen wrote:
> On Thu, 2008-03-20 at 21:35 +0100, Carsten Otte wrote:
>> Dave Hansen wrote:
>>> 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
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-03-21 19:03 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1206028710.6690.21.camel@cotte.boeblingen.de.ibm.com>
2008-03-20 16:24 ` [RFC/PATCH 01/15] preparation: provide hook to enable pgstes in user pagetable Carsten Otte
2008-03-20 16:24 ` Carsten Otte
2008-03-20 16:24 ` Carsten Otte, Martin Schwidefsky
2008-03-20 17:28 ` Jeremy Fitzhardinge
2008-03-20 17:28 ` Jeremy Fitzhardinge
2008-03-20 17:28 ` Jeremy Fitzhardinge
2008-03-20 19:13 ` Dave Hansen
2008-03-20 19:13 ` Dave Hansen
2008-03-20 20:35 ` Carsten Otte
2008-03-20 20:35 ` [kvm-devel] " Carsten Otte
2008-03-21 18:29 ` Dave Hansen
2008-03-21 18:29 ` Dave Hansen
2008-03-21 19:03 ` Carsten Otte [this message]
2008-03-21 19:03 ` Carsten Otte
2008-03-22 17:57 ` Heiko Carstens
2008-03-22 17:57 ` Heiko Carstens
2008-03-22 17:57 ` [kvm-devel] " Heiko Carstens
2008-03-23 10:15 ` Avi Kivity
2008-03-23 10:15 ` [kvm-devel] " Avi Kivity
2008-03-23 18:23 ` Martin Schwidefsky
2008-03-23 18:23 ` Martin Schwidefsky
2008-03-24 6:57 ` Avi Kivity
2008-03-24 6:57 ` Avi Kivity
2008-03-24 6:57 ` [kvm-devel] " Avi Kivity
2008-03-25 6:08 ` Carsten Otte
2008-03-25 6:08 ` Carsten Otte
2008-03-25 6:08 ` [kvm-devel] " Carsten Otte
2008-03-25 6:12 ` Avi Kivity
2008-03-25 6:12 ` Avi Kivity
2008-03-25 6:12 ` [kvm-devel] " Avi Kivity
2008-03-23 10:15 ` Avi Kivity
2008-03-25 15:37 ` Carsten Otte
2008-03-25 15:37 ` [kvm-devel] " Carsten Otte
2008-03-25 15:37 ` Carsten Otte
2008-03-20 20:35 ` Carsten Otte
2008-03-20 19:13 ` Dave Hansen
2008-03-20 16:24 ` [RFC/PATCH 02/15] preparation: host memory management changes for s390 kvm Carsten Otte
2008-03-20 16:24 ` Carsten Otte, Heiko Carstens, Christian Borntraeger
2008-03-20 16:24 ` Carsten Otte
2008-03-20 16:24 ` [RFC/PATCH 03/15] preparation: address of the 64bit extint parm in lowcore Carsten Otte
2008-03-20 16:24 ` Carsten Otte
2008-03-20 16:24 ` [RFC/PATCH 04/15] preparation: split sysinfo defintions for kvm use Carsten Otte
2008-03-20 16:24 ` Carsten Otte
2008-03-20 16:24 ` [RFC/PATCH 05/15] kvm-s390: s390 arch backend for the kvm kernel module Carsten Otte
2008-03-20 16:24 ` Carsten Otte
2008-03-20 16:43 ` [RFC/PATCH 05/15] KVM_MAX_VCPUS Hollis Blanchard
2008-03-20 16:43 ` Hollis Blanchard
2008-03-20 16:48 ` Carsten Otte
2008-03-21 10:41 ` [kvm-devel] " Avi Kivity
2008-03-21 11:13 ` Carsten Otte
2008-03-21 11:13 ` [kvm-devel] " Carsten Otte
2008-03-20 16:48 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 06/15] kvm-s390: sie intercept handling Carsten Otte
2008-03-20 16:25 ` Carsten Otte
2008-03-21 10:53 ` [kvm-devel] " Avi Kivity
2008-03-21 11:26 ` Carsten Otte
2008-03-21 11:26 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 07/15] kvm-s390: interrupt subsystem, cpu timer, waitpsw Carsten Otte
2008-03-20 16:25 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 08/15] kvm-s390: intercepts for privileged instructions Carsten Otte
2008-03-20 16:25 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 09/15] kvm-s390: interprocessor communication via sigp Carsten Otte
2008-03-20 16:25 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 10/15] kvm-s390: intercepts for diagnose instructions Carsten Otte
2008-03-20 16:25 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 11/15] kvm-s390: add kvm to kconfig on s390 Carsten Otte
2008-03-20 16:25 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 12/15] kvm-s390: API documentation Carsten Otte
2008-03-20 16:25 ` Carsten Otte
2008-03-20 17:22 ` Randy Dunlap
2008-03-21 10:33 ` [kvm-devel] " Carsten Otte
2008-03-20 17:22 ` Randy Dunlap
2008-03-20 16:25 ` [RFC/PATCH 13/15] kvm-s390: update maintainers Carsten Otte
2008-03-20 16:25 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 14/15] guest: detect when running on kvm Carsten Otte
2008-03-20 17:16 ` Randy Dunlap
2008-03-20 17:27 ` Carsten Otte
2008-03-20 17:27 ` Carsten Otte
2008-03-20 17:16 ` Randy Dunlap
2008-03-20 17:53 ` Christoph Hellwig
2008-03-20 20:37 ` Carsten Otte
2008-03-20 19:41 ` Christoph Hellwig
2008-03-20 20:59 ` Carsten Otte
2008-03-20 21:22 ` [kvm-devel] " Heiko Carstens
2008-03-20 21:22 ` Heiko Carstens
2008-03-21 11:12 ` Carsten Otte
2008-03-21 14:06 ` [kvm-devel] " Heiko Carstens
2008-03-21 14:06 ` Heiko Carstens
2008-03-21 14:33 ` Carsten Otte
2008-03-22 17:25 ` Heiko Carstens
2008-03-22 17:25 ` [kvm-devel] " Heiko Carstens
2008-03-21 14:33 ` Carsten Otte
2008-03-21 11:12 ` Carsten Otte
2008-03-20 20:59 ` Carsten Otte
2008-03-20 19:41 ` Christoph Hellwig
2008-03-20 20:37 ` Carsten Otte
2008-03-20 17:53 ` Christoph Hellwig
2008-03-20 16:25 ` Carsten Otte
2008-03-20 16:25 ` [RFC/PATCH 15/15] guest: virtio device support, and kvm hypercalls Carsten Otte
2008-03-21 0:24 ` Rusty Russell
2008-03-21 7:12 ` [kvm-devel] " Carsten Otte
2008-03-21 7:12 ` Carsten Otte
2008-03-21 8:15 ` Christian Borntraeger
2008-03-21 8:15 ` Christian Borntraeger
2008-03-21 23:30 ` Rusty Russell
2008-03-21 23:30 ` Rusty Russell
2008-03-22 7:36 ` Carsten Otte
2008-03-22 7:36 ` Carsten Otte
2008-03-21 0:24 ` Rusty Russell
2008-03-21 10:44 ` Avi Kivity
2008-03-20 16:25 ` Carsten Otte
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47E40682.3020209@de.ibm.com \
--to=cotte@de.ibm.com \
--cc=EHRHARDT@de.ibm.com \
--cc=arnd@arndb.de \
--cc=borntrae@linux.vnet.ibm.com \
--cc=carsteno@de.ibm.com \
--cc=haveblue@us.ibm.com \
--cc=heicars2@linux.vnet.ibm.com \
--cc=hollisb@us.ibm.com \
--cc=jblunck@suse.de \
--cc=jeroney@us.ibm.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-mm@kvack.org \
--cc=mschwid2@linux.vnet.ibm.com \
--cc=os@de.ibm.com \
--cc=rvdheij@gmail.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=xiantao.zhang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.