From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756238AbbGPTgA (ORCPT ); Thu, 16 Jul 2015 15:36:00 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:35302 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756209AbbGPTf6 (ORCPT ); Thu, 16 Jul 2015 15:35:58 -0400 From: Sasha Levin To: akpm@linux-foundation.org, mgorman@suse.de Cc: mhocko@suse.cz, riel@redhat.com, mingo@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sasha Levin Subject: [PATCH] mm: trace tlb flush after disabling preemption in try_to_unmap_flush Date: Thu, 16 Jul 2015 15:35:39 -0400 Message-Id: <1437075339-32715-1-git-send-email-sasha.levin@oracle.com> X-Mailer: git-send-email 2.1.4 X-Source-IP: userv0022.oracle.com [156.151.31.74] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit "mm: send one IPI per CPU to TLB flush all entries after unmapping pages" added a trace_tlb_flush() while preemption was still enabled. This means that we'll access smp_processor_id() which in turn will get us quite a few warnings. Fix it by moving the trace to where the preemption is disabled, one line down. Signed-off-by: Sasha Levin --- The diff is all lies: I've moved trace_tlb_flush() one line down rather than get_cpu() a line up ;) mm/rmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/rmap.c b/mm/rmap.c index 30812e9..63ba46c 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -613,9 +613,10 @@ void try_to_unmap_flush(void) if (!tlb_ubc->flush_required) return; + cpu = get_cpu(); + trace_tlb_flush(TLB_REMOTE_SHOOTDOWN, -1UL); - cpu = get_cpu(); if (cpumask_test_cpu(cpu, &tlb_ubc->cpumask)) percpu_flush_tlb_batch_pages(&tlb_ubc->cpumask); -- 1.7.10.4