This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: [PATCH 0/9] Make lazy mmu update mode pre-empt safe

To: Ingo Molnar <mingo@xxxxxxx>
Subject: [Xen-devel] Re: [PATCH 0/9] Make lazy mmu update mode pre-empt safe
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Wed, 18 Feb 2009 14:52:06 -0800
Cc: Nick Piggin <npiggin@xxxxxxx>, Zachary Amsden <zach@xxxxxxxxxx>, Rusty Russell <rusty@xxxxxxxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx>, the arch/x86 maintainers <x86@xxxxxxxxxx>, Alok N Kataria <akataria@xxxxxxxxxx>, Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>, Marcelo Tosatti <mtosatti@xxxxxxxxxx>, Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>, Avi Kivity <avi@xxxxxxxxxx>, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Delivery-date: Wed, 18 Feb 2009 14:53:31 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <cover.1234988621.git.jeremy.fitzhardinge@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <cover.1234988621.git.jeremy.fitzhardinge@xxxxxxxxxx> <cover.1234988621.git.jeremy.fitzhardinge@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird (X11/20090105)
[ Clearly some aspect of this mailbomb tool is eluding me. ]


This series changes the paravirt-ops lazy update modes in the following ways:

1. Make paravirt_get_lazy_mode() always return PARAVIRT_LAZY_NONE in
   interrupt context.  This has the effect of making all mmu and cpu
   state updates synchronous in interrupt routines, without the need
   to add explicit flushing.

2. De-generalize lazy cpu mode to a specific context-switch operation.
   Rather than dealing with fully general enter/leave lazy cpu update
   mode, make it specifically about start/end context switch, since that
   was the only use anyway.  That means the implementations know that
   they're in the middle of a context switch.

3. On starting a context switch, if the task is in lazy mmu update mode,
   record that fact in thread_info->flags TIF_LAZY_MMU_UPDATE, and
   disable lazy updates (flushing anything pending).  On ending a context
   switch, if the new task has TIF_LAZY_MMU_UPDATE set, then reenter
   lazy mmu update mode.

4. Remove all the preempt_disable/enable pairs and assertion that
   preemption must be disabled for lazy mmu updates.

This has the net effect of 1) making lazy mmu updates more robust, and
2) not requiring any changes to the current rules of how init_mm can
be updated.


Xen-devel mailing list