|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH 0/9] Make lazy mmu update mode pre-empt safe
To: |
Ingo Molnar <mingo@xxxxxxx> |
Subject: |
[Xen-devel] [PATCH 0/9] Make lazy mmu update mode pre-empt safe |
From: |
Jeremy Fitzhardinge <jeremy@xxxxxxxx> |
Date: |
Wed, 18 Feb 2009 14:30:10 -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:31:42 -0800 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxxx |
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> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
From: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>
Hi,
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.
Thanks,
J
Jeremy Fitzhardinge (7):
x86/paravirt: remove lazy mode in interrupts
x86/pvops: replace arch_enter_lazy_cpu_mode with arch_start_context_switch
x86/paravirt: flush pending mmu updates on context switch
x86/paravirt: allow preemption with lazy mmu mode
mm: allow preemption in apply_to_pte_range
x86/paravirt: use percpu_ rather than __get_cpu_var
x86/paravirt: finish change from lazy cpu to context switch start/end
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH 0/9] Make lazy mmu update mode pre-empt safe,
Jeremy Fitzhardinge <=
|
|
|
|
|