|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
Re: [Xen-devel] [PATCH] turn off writable page tables
 
On 31 Jul 2006, at 10:32, Zachary Amsden wrote:
 It would allow set_pte() to switch between explicit queuing and 
'direct' writing. We moved away from the former a few years back as 
doing it everywhere made a mess of the generic Linux mm code and it 
was hard to reason whether our patches were correct. I guess doing it 
for the most important subset of mm routines is not so bad. It's a 
shame that, although many set_pte() call sites could determine 
statically whether or not they will batch, we'd end up with a dynamic 
run-time test everywhere (unless I'm mistaken) -- I wonder if that 
has a measurable cost?
  
 We've actually seen a benefit for this, despite the cost of the 
non-static parameters, for both VMI Linux with shadow pagetables on 
ESX and VMI Linux with direct pagetables on Xen.  Turns out that as 
long as the call EIP is predictable, the parameters do not necessarily 
need to be so, and modern processors are getting much better at branch 
prediction.
 
 You mean that the benefit of batching outweighs the cost of an extra 
test-and-branch in the middle of a loop, or that the extra 
test-and-branch simply has unmeasurable overhead? The former is to be 
expected, but I'd be worried about other call sites where batching does 
not happen, and an effect on those.
 Doing explicit batching exactly where it counts, under protection of 
locks, so that SMP safety is guaranteed turns out to be really easy, 
as well as a nice win.
 
 If the run-time check cost really isn't an issue (I'd like to see 
numbers), we'd likely use this new interface in preference to 
implicitly batched writable pagetables and would support its inclusion 
in the kernel.
 -- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |