Received: by 10.213.65.68 with SMTP id h4csp33729imn; Mon, 26 Mar 2018 14:26:42 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+5rGhxgBWgulLF2yBx+MEZ4M4A/nQovPZ7TgzXRVhCNuK1ODdMtxSHBG/SrAV1H1q+KAn4 X-Received: by 2002:a17:902:7084:: with SMTP id z4-v6mr4070182plk.395.1522099602408; Mon, 26 Mar 2018 14:26:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522099602; cv=none; d=google.com; s=arc-20160816; b=ABT0mTteKDi6qPvTPvAJtBiGrm/ohBnRe2vtsWf3x+TSSpYvgyuMwUB/zzIXjeyYYC 4gbyOxr2xvxh9gQFH0K8CDuYod6MESiMFZw3jjPM4UTHD780f6iG/ZeIQmU70PAxgCa2 2iyMgZUtMZd8Rj9/hK9NWJS4S2u3T1SXk8wUg8uO5s2AM1/5HdhCDkjZIGbY/wMG3k89 biNSUI4czSKBdvRJEDHd1q7G2WdmFGE9oUvH3JGzZaHjK16uhCk3cGil7/gkF5vaf9LH yhfnF6H+KxiEeRupZZwCxBOPJ7B89qlB0EyLF6+DJU90JZe9xbZATULM1iBEy4pXcFqg KKcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=PMcbk8hoVHXnESmbkeNtZ5JqHYUyDp+ptb45w4iXou8=; b=Mi+wZ0iJ4Z+4swgLCB6xVWxam73eZX2i+ceKoFGGQKmyZnj6p/ar/bht2gSDOIaoxI dbB6CDQb+w71EnQXDTYBycy0WodSTgd84THBH4sWt8bHn7JF/NGdVSEph4vGkcsXyMR9 Z8txD8aE6YUm+qNGX1chGdIAwE3+KN9sw6Fm5Dp7oUbinj1fT+IOiEQCNFoStOoPdBlc NWjGwPqibX1RGGIJYLi5IIO8K77Vxeh9Mt1jWQWdmq9HPWnU9o3zu/6NsZGd0OQf+BZi k3HjStrUbZf6H3xg6pDa4qGniz8QnpFMugUFMDx8O09OeMkjNJeCPFJTFiN+ti9JVd42 VHhQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m185si1211068pfc.396.2018.03.26.14.26.27; Mon, 26 Mar 2018 14:26:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752495AbeCZVYo (ORCPT + 99 others); Mon, 26 Mar 2018 17:24:44 -0400 Received: from smtp2.provo.novell.com ([137.65.250.81]:41073 "EHLO smtp2.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752204AbeCZVWH (ORCPT ); Mon, 26 Mar 2018 17:22:07 -0400 Received: from linux-n805.suse.de (prv-ext-foundry1int.gns.novell.com [137.65.251.240]) by smtp2.provo.novell.com with ESMTP (TLS encrypted); Mon, 26 Mar 2018 15:22:03 -0600 From: Davidlohr Bueso To: peterz@infradead.org, mingo@kernel.org, akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, Davidlohr Bueso , Davidlohr Bueso Subject: [PATCH 4/6] perf,x86: Update rdpmc_always_available static key to modern api Date: Mon, 26 Mar 2018 14:09:27 -0700 Message-Id: <20180326210929.5244-5-dave@stgolabs.net> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180326210929.5244-1-dave@stgolabs.net> References: <20180326210929.5244-1-dave@stgolabs.net> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org No changes in refcount semantics -- key init is false; replace static_key_slow_inc|dec with static_branch_inc|dec static_key_false with static_branch_unlikely Added a '_key' suffix to rdpmc_always_available, for better self documentation. Signed-off-by: Davidlohr Bueso --- arch/x86/events/core.c | 6 +++--- arch/x86/include/asm/mmu_context.h | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c index c5f3d83c04ad..7a987e6c7c35 100644 --- a/arch/x86/events/core.c +++ b/arch/x86/events/core.c @@ -48,7 +48,7 @@ DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events) = { .enabled = 1, }; -struct static_key rdpmc_always_available = STATIC_KEY_INIT_FALSE; +DEFINE_STATIC_KEY_FALSE(rdpmc_always_available_key); u64 __read_mostly hw_cache_event_ids [PERF_COUNT_HW_CACHE_MAX] @@ -2206,9 +2206,9 @@ static ssize_t set_attr_rdpmc(struct device *cdev, * but only root can trigger it, so it's okay. */ if (val == 2) - static_key_slow_inc(&rdpmc_always_available); + static_branch_inc(&rdpmc_always_available_key); else - static_key_slow_dec(&rdpmc_always_available); + static_branch_dec(&rdpmc_always_available_key); on_each_cpu(refresh_pce, NULL, 1); } diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h index 1de72ce514cd..57e3785d0d26 100644 --- a/arch/x86/include/asm/mmu_context.h +++ b/arch/x86/include/asm/mmu_context.h @@ -24,11 +24,12 @@ static inline void paravirt_activate_mm(struct mm_struct *prev, #endif /* !CONFIG_PARAVIRT */ #ifdef CONFIG_PERF_EVENTS -extern struct static_key rdpmc_always_available; + +DECLARE_STATIC_KEY_FALSE(rdpmc_always_available_key); static inline void load_mm_cr4(struct mm_struct *mm) { - if (static_key_false(&rdpmc_always_available) || + if (static_branch_unlikely(&rdpmc_always_available_key) || atomic_read(&mm->context.perf_rdpmc_allowed)) cr4_set_bits(X86_CR4_PCE); else -- 2.13.6