From: Joe Bonasera <joe.bonasera@sun.com>
To: xen-devel@lists.xensource.com
Subject: RE: [PATCH] turn off writable page tables
Date: Wed, 26 Jul 2006 16:38:58 -0700 [thread overview]
Message-ID: <44C7FD12.3000407@sun.com> (raw)
In-Reply-To: <E1G5sBV-0005eg-At@host-192-168-0-1-bcn-london>
xen-devel-request@lists.xensource.com wrote:
>
> Message: 1
> Date: Wed, 26 Jul 2006 22:38:32 +0100
> From: "Ian Pratt" <m+Ian.Pratt@cl.cam.ac.uk>
> Subject: RE: [Xen-devel] [PATCH] turn off writable page tables
> To: "Andrew Theurer" <habanero@us.ibm.com>, "Keir Fraser"
> <Keir.Fraser@cl.cam.ac.uk>
> Cc: Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk>, Gerd Hoffmann
> <kraxel@suse.de>, xen-devel@lists.xensource.com
> Message-ID:
> <A95E2296287EAD4EB592B5DEEFCE0E9D572247@liverpoolst.ad.cl.cam.ac.uk>
> Content-Type: text/plain; charset="us-ascii"
>
>> And it does make a difference in this case. I now have a test program
>> which dirties a number of virtually contiguous pages then forks (it
> also
>> resets xen perf counters before fork and collects perf counters right
>> after fork), then records the elapsed time for the fork. The
> difference
>> is quite amazing in this case. For both writable and emulate, I ran
>> with a range of dirty pages, from 1280 to 128000. The elapsed times
> for
>> fork a quite linear from small number to large number of dirty pages.
>> Below are the min and max:
>>
>> 1280 pages 128000 pages
>> wtpt: 813 usec 37552 usec
>> emulate: 3279 usec 283879 usec
>
> Good, at least that suggests that the code works for the usage it was
> intended for.
>
>> So, in a -perfect-world- this works great. Problem is most workloads
>> don't appear to have a vast percentage of entries that need to be
>> updated. I'll go ahead and expand this test to find out what the
>> threshold is to break even. I'll also see if we can implement a
> batched
>> call in fork to update the parent -I hope this will show just as good
>> performance even when most entries need modification and even better
>> performance over wtpt with a low number of entries modified.
>
> With license to make more invasive changes to core Linux mm it certainly
> should be possible to optimize this specific case with a batched update
> fairly easily. You could even go further an implement a 'make all PTEs
> in pagetable RO' hypercall, possibly including a copy to the child. This
> could potentially work better than current 'late pin', at least the
> validation would be incremental rather than in one big hit at the end.
>
> Ian
OpenSolaris could easily use the "make all PTEs in pagetable RO" hypercall.
But we don't copy in bulk to the child, so if you go down that path
please make the copy to child part optional.
Joe
next parent reply other threads:[~2006-07-26 23:38 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <E1G5sBV-0005eg-At@host-192-168-0-1-bcn-london>
2006-07-26 23:38 ` Joe Bonasera [this message]
2006-07-28 15:51 [PATCH] turn off writable page tables Ian Pratt
2006-07-28 16:31 ` Keir Fraser
2006-07-28 21:36 ` Zachary Amsden
2006-07-28 23:05 ` Andi Kleen
2006-07-28 23:10 ` Zachary Amsden
2006-07-31 9:14 ` Keir Fraser
2006-07-31 9:32 ` Zachary Amsden
2006-07-31 9:53 ` Keir Fraser
2006-07-31 19:56 ` Zachary Amsden
2006-07-31 22:07 ` Keir Fraser
2006-07-31 22:40 ` Zachary Amsden
2006-08-02 9:21 ` Keir Fraser
-- strict thread matches above, loose matches on Subject: below --
2006-07-27 17:31 Ian Pratt
2006-07-28 8:55 ` Keir Fraser
2006-07-28 15:21 ` Andrew Theurer
2006-07-26 21:38 Ian Pratt
2006-07-27 14:43 ` Andrew Theurer
2006-07-27 15:30 ` Keir Fraser
2006-07-25 22:41 Ian Pratt
2006-07-26 2:25 ` Andrew Theurer
2006-07-26 5:31 ` Jacob Gorm Hansen
2006-07-26 8:18 ` Gerd Hoffmann
2006-07-26 8:40 ` Keir Fraser
2006-07-26 21:10 ` Andrew Theurer
2006-07-25 22:14 Andrew Theurer
2006-07-25 22:43 ` Nivedita Singhvi
2006-07-25 23:19 ` Andrew Theurer
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=44C7FD12.3000407@sun.com \
--to=joe.bonasera@sun.com \
--cc=xen-devel@lists.xensource.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.