From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762681AbZBRWwq (ORCPT ); Wed, 18 Feb 2009 17:52:46 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1762587AbZBRWwM (ORCPT ); Wed, 18 Feb 2009 17:52:12 -0500 Received: from gw.goop.org ([64.81.55.164]:33988 "EHLO mail.goop.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760908AbZBRWwK (ORCPT ); Wed, 18 Feb 2009 17:52:10 -0500 Message-ID: <499C9116.7000702@goop.org> Date: Wed, 18 Feb 2009 14:52:06 -0800 From: Jeremy Fitzhardinge User-Agent: Thunderbird 2.0.0.19 (X11/20090105) MIME-Version: 1.0 To: Ingo Molnar CC: the arch/x86 maintainers , Xen-devel , Linux Kernel Mailing List , Peter Zijlstra , Nick Piggin , Andrew Morton , Thomas Gleixner , Rusty Russell , Zachary Amsden , Alok N Kataria , Avi Kivity , Marcelo Tosatti , Jeremy Fitzhardinge Subject: Re: [PATCH 0/9] Make lazy mmu update mode pre-empt safe References: In-Reply-To: X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Clearly some aspect of this mailbomb tool is eluding me. ] 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