All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Theurer <habanero@us.ibm.com>
To: Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk>
Cc: Xen development list <xen-devel@lists.xensource.com>,
	Rolf Neugebauer <rn@acm.org>
Subject: Re: Why is 'emulate' as good as writable PT's?
Date: Tue, 06 Jun 2006 15:28:07 -0500	[thread overview]
Message-ID: <4485E557.2020005@us.ibm.com> (raw)
In-Reply-To: <A95E2296287EAD4EB592B5DEEFCE0E9D4BA988@liverpoolst.ad.cl.cam.ac.uk>

Ian Pratt wrote:
>> Could there be situations were we are inadvertently triggering a
>> writable page table, where we should just be doing a
>>     
> update_va_mapping()?
>
> Almost certainly. Singleton (or small batch) updates should not be using
> writeable pagetables, and should use update_va_mapping (or mmu_update if
> the VA isn't known or may not be mapped).
>
> ~18 months ago Rolf wrote and checked in profile code to collect a
> histogram of the number of entries found to be modified when writeable
> pagetables are flushed.
> At the time there was a big spike at '1' which was fixed, but with all
> the various linux version upgrades it likely needs revisiting. 
>
> The profile code also records the EIP that caused the writeable
> pagetables operation, so if you print out the value a few times you'll
> quickly find the culprit.
>
> Thanks,
> Ian
>   
Yes, we definitely have a problem here.  Tons of flushes with 
modified=1, and lots with <=10.  The three benchmarks all seem to hit 
the same areas.  Here is the output from running SDET, with snippets 
from System.map mixed in:

Out of a total of 19601 writable PT updates:

c01522b0 <=1   40    <=10    0       <=50    0       <=100    0      <=512    0
--------
c0151e90 T sys_mprotect
c01524d3 t .text.lock.mprotect


c014ed77 <=1 3418    <=10 4853       <=50 1674       <=100   70      <=512    0
--------
c014e84e T copy_page_range
c014efc6 T free_pgtables


c01522ab <=1 3728    <=10    0       <=50    0       <=100    0      <=512    0
--------
c0151e90 T sys_mprotect
c01524d3 t .text.lock.mprotect


c014b809 <=1 3752    <=10 1654       <=50  302       <=100   10      <=512    3
--------
c014b300 T unmap_vmas
c014b9ba T zap_page_range


c014b80b <=1   32    <=10   30       <=50   30       <=100    1      <=512    0
--------
c014b300 T unmap_vmas
c014b9ba T zap_page_range


-Andrew

  parent reply	other threads:[~2006-06-06 20:28 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-05 22:17 Why is 'emulate' as good as writable PT's? Ian Pratt
2006-06-05 22:29 ` Andrew Theurer
2006-06-06 20:28 ` Andrew Theurer [this message]
2006-06-06 21:14   ` Keir Fraser
2006-06-06 22:02     ` Andrew Theurer
2006-06-08 16:05     ` Andrew Theurer
  -- strict thread matches above, loose matches on Subject: below --
2006-06-12  9:15 Ian Pratt
2006-06-13 14:47 ` Andrew Theurer
2006-06-05 21:45 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=4485E557.2020005@us.ibm.com \
    --to=habanero@us.ibm.com \
    --cc=m+Ian.Pratt@cl.cam.ac.uk \
    --cc=rn@acm.org \
    --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.