All of lore.kernel.org
 help / color / mirror / Atom feed
* RE: [PATCH] turn off writable page tables
@ 2006-07-28 15:51 Ian Pratt
  2006-07-28 16:31 ` Keir Fraser
  0 siblings, 1 reply; 15+ messages in thread
From: Ian Pratt @ 2006-07-28 15:51 UTC (permalink / raw)
  To: Andrew Theurer, Keir Fraser; +Cc: Gerd Hoffmann, xen-devel

> So, in summary, we know writable page tables are not broken, they just
> don't help on typical workloads because the PTEs/page are so low.
> However, they do hurt SMP guest performance.  If we are not seeing a
> benefit today, should we turn it off?  Should we make it a compile
time
> option, with the default off?

I wouldn't mind seeing wrpt removed altogether, or at least emulation
made the compile time default for the moment. There's bound to be some
workload that bites us in the future which is why batching updates on
the fork path mightn't be a bad thing if it can be done without too much
gratuitous hacking of linux core code.

Ian

^ permalink raw reply	[flat|nested] 15+ messages in thread
* RE: [PATCH] turn off writable page tables
@ 2006-07-27 17:31 Ian Pratt
  2006-07-28  8:55 ` Keir Fraser
  0 siblings, 1 reply; 15+ messages in thread
From: Ian Pratt @ 2006-07-27 17:31 UTC (permalink / raw)
  To: Keir Fraser, Andrew Theurer; +Cc: Ian Pratt, Gerd Hoffmann, xen-devel


> > I am having a hard time finding any "enterprise" workloads which
have
> > a lot of PTEs/page right before fork.  If anyone can point me to
some,
> > that would be great.
> >
> > I will look into batching next, but I am curious if simply using a
> > hypercall in stead of write fault + emulate will make any difference
> > at all.  I'll try that first, then implement the batched update.
> > Eventually a hypercall which does more would be nice, but I guess
> > we'll have to convince the Linux maintainers it's a good idea.
> 
> The obvious thing to do is emulate the first 4 updates to a particular
> page, and only then switch to batched mode. Slows down the batched
path
> a bit, but stops it firing in many cases where it is no help.

Why? There should be no overhead to just building batches on the stack
(or a per vcpu area) and flushing at the end of the page. Certainly if
we were to keep wrpt it would make sense to take a few emulations faults
first on a page before engaging wrpt, but for explicit batches we don't
need any smarts. 

[Although the batching strategy would (currently) work for Linux, we do
have to bare in mind that some OSes (possibly NetBSD) won't rely on a
lock to protect updates to pagetables and will use individual atomic
ops.]

Ian

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2006-08-09 21:15 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2006-08-03 20:42                       ` Mike D. Day
2006-08-09 21:15                         ` Andrew Theurer
  -- strict thread matches above, loose matches on Subject: below --
2006-07-27 17:31 [PATCH] " Ian Pratt
2006-07-28  8:55 ` Keir Fraser
2006-07-28 15:21   ` Andrew Theurer
2006-07-28 23:23     ` Mike Day

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.