From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756646AbbBEHPB (ORCPT ); Thu, 5 Feb 2015 02:15:01 -0500 Received: from www.sr71.net ([198.145.64.142]:57994 "EHLO blackbird.sr71.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756604AbbBEHO7 (ORCPT ); Thu, 5 Feb 2015 02:14:59 -0500 Message-ID: <54D3186F.7030500@sr71.net> Date: Wed, 04 Feb 2015 23:14:55 -0800 From: Dave Hansen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: sedat.dilek@gmail.com, Paul McKenney CC: "Rafael J. Wysocki" , "Rafael J. Wysocki" , linux-next , LKML , Stephen Rothwell , Kristen Carlson Accardi , "H. Peter Anvin" , Rik van Riel , Mel Gorman , Steven Rostedt Subject: Re: linux-next: Tree for Feb 4 References: <20150204193535.58f132c5@canb.auug.org.au> <1511573.AlfExlvQsO@vostro.rjw.lan> <20150204215357.GL5370@linux.vnet.ibm.com> <11131483.LrRNxJumiL@vostro.rjw.lan> <20150204235115.GP5370@linux.vnet.ibm.com> <20150205001019.GA12362@linux.vnet.ibm.com> <20150205005716.GS5370@linux.vnet.ibm.com> <20150205015144.GT5370@linux.vnet.ibm.com> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/04/2015 05:53 PM, Sedat Dilek wrote: > The architecture-specific switch_mm() function can be called by offline > CPUs, but includes event tracing, which cannot be legally carried out > on offline CPUs. This results in a lockdep-RCU splat. This commit fixes > this splat by omitting the tracing when the CPU is offline. ... >>> >> > load_cr3(next->pgd); >>> >> > - trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL); >>> >> > + if (cpu_online(smp_processor_id())) >>> >> > + trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL); Is this, perhaps, something that we should be doing in the generic trace code so that all of the trace users don't have to worry about it? Also, this patch will add overhead to the code when tracing is off. It would be best if we could manage to make the cpu_online() check only in the cases where the tracepoint is on.