From patchwork Mon Nov 23 18:33:08 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Poirier X-Patchwork-Id: 7685361 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id C46FEBF90C for ; Mon, 23 Nov 2015 18:51:48 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id E3103206C7 for ; Mon, 23 Nov 2015 18:51:47 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0A0A0206CD for ; Mon, 23 Nov 2015 18:51:47 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1a0wBQ-0008Bx-BC; Mon, 23 Nov 2015 18:49:48 +0000 Received: from mail-pa0-x22b.google.com ([2607:f8b0:400e:c03::22b]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1a0vwq-0000FU-Gb for linux-arm-kernel@lists.infradead.org; Mon, 23 Nov 2015 18:34:46 +0000 Received: by pacdm15 with SMTP id dm15so198926978pac.3 for ; Mon, 23 Nov 2015 10:34:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=D+I39M6rgjKk3I/UUQoiOuCY5q+RqgkJIRPqP+30pBw=; b=yBrwVVkbkXEjrg9z41DmloF2JUo2agDteyb3Ss2eGnJQT+cwmm30QBXQ7uIpWwi6LF OvqdENyf9Cshfz3CG22Wja/iARVix78ecMkWq1J473lKkTDWZ0Rk6GmEuRg2bKWrsCRI 8HBEtX4ihU/dywhR0TjF19ZHWEqGdZKTF/1nNbGevuA2xGgS173HgS+4TbXqA85A5i/w o+RzvrK5hAySikwdbTSn9yC1lFnipsfdcAiffdD1DoWU48wOB9rJj17vWkDoY7AdIpUm Dp/kB02KZAxT9Lc0DfJ5makLkyVUIJaFl57HnWfxGQzeBP+UFbevJwY3/60ht8C4Bst2 11lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=D+I39M6rgjKk3I/UUQoiOuCY5q+RqgkJIRPqP+30pBw=; b=gyLLHUKyWZN9BrikdGMwWI8dQ/4OH/8Dwa2udXfoqkM9MS6u0NKNiUvvob1wzGOq5f OANXTHUpAn2pGBBKlvvWRVphgqPbQsUkIvQ/MnFszwZvxG1E/L+l8xLlF+cZVtNcNnMv hXjzhT7HbT2as6CFhIrEu2g2ct2OhZJ8x+/dPCJh9hU9RPzB3vbF+Jsw7UxvpHPgKV49 wHqQGGNul6M0BT8589bGQ1/nxfC476jkFrg4JcSibWmRORSol8zNIzSEqeA3rt4CaFTe tvCD/DCFtPqQsxeJ/yGtkiriWdqSWGQFwS19GD+Mlke8utA8iW6bJHKrrJAaFNi/dyxw dcYA== X-Gm-Message-State: ALoCoQm5ZnXNHElyEuI/Exn862sXfRu44jXPxYrJDV0EJlksJWfs4xKvY4egDpzBFfR3Rj6rnx0z X-Received: by 10.66.155.226 with SMTP id vz2mr37775724pab.18.1448303664144; Mon, 23 Nov 2015 10:34:24 -0800 (PST) Received: from t430.cg.shawcable.net ([184.64.168.246]) by smtp.gmail.com with ESMTPSA id r20sm10865186pfa.93.2015.11.23.10.34.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 23 Nov 2015 10:34:23 -0800 (PST) From: Mathieu Poirier To: gregkh@linuxfoundation.org, a.p.zijlstra@chello.nl, alexander.shishkin@linux.intel.com, acme@kernel.org, mingo@redhat.com, corbet@lwn.net, nicolas.pitre@linaro.org Subject: [RESEND PATCH V4 16/26] perf: changing pmu::setup_aux() parameter to include event Date: Mon, 23 Nov 2015 11:33:08 -0700 Message-Id: <1448303598-11249-17-git-send-email-mathieu.poirier@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1448303598-11249-1-git-send-email-mathieu.poirier@linaro.org> References: <1448303598-11249-1-git-send-email-mathieu.poirier@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20151123_103444_841136_7F6E2831 X-CRM114-Status: GOOD ( 13.89 ) X-Spam-Score: -2.6 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: al.grant@arm.com, pawel.moll@arm.com, linux-doc@vger.kernel.org, fainelli@broadcom.com, linux-kernel@vger.kernel.org, tor@ti.com, mike.leach@arm.com, zhang.chunyan@linaro.org, linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP For Coresight ETMv3/4 tracers the event carries information about trace modes such as user or kernel space tracing and whether tracing is allowed when operating in secure mode. Since this information is to be embedded in the private structure returned by setup_aux(), changing the first parameter to be of type struct perf_event * so that all the necessary information can be conveyed. Also changing current customer of the API to reflect the modification. Signed-off-by: Mathieu Poirier --- arch/x86/kernel/cpu/perf_event_intel_bts.c | 4 +++- arch/x86/kernel/cpu/perf_event_intel_pt.c | 5 +++-- include/linux/perf_event.h | 2 +- kernel/events/ring_buffer.c | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/arch/x86/kernel/cpu/perf_event_intel_bts.c b/arch/x86/kernel/cpu/perf_event_intel_bts.c index d1c0f254afbe..773600b2f313 100644 --- a/arch/x86/kernel/cpu/perf_event_intel_bts.c +++ b/arch/x86/kernel/cpu/perf_event_intel_bts.c @@ -68,10 +68,12 @@ static size_t buf_size(struct page *page) } static void * -bts_buffer_setup_aux(int cpu, void **pages, int nr_pages, bool overwrite) +bts_buffer_setup_aux(struct perf_event *event, void **pages, + int nr_pages, bool overwrite) { struct bts_buffer *buf; struct page *page; + int cpu = event->cpu; int node = (cpu == -1) ? cpu : cpu_to_node(cpu); unsigned long offset; size_t size = nr_pages << PAGE_SHIFT; diff --git a/arch/x86/kernel/cpu/perf_event_intel_pt.c b/arch/x86/kernel/cpu/perf_event_intel_pt.c index 42169283448b..f8b881210648 100644 --- a/arch/x86/kernel/cpu/perf_event_intel_pt.c +++ b/arch/x86/kernel/cpu/perf_event_intel_pt.c @@ -863,10 +863,11 @@ static int pt_buffer_init_topa(struct pt_buffer *buf, unsigned long nr_pages, * Return: Our private PT buffer structure. */ static void * -pt_buffer_setup_aux(int cpu, void **pages, int nr_pages, bool snapshot) +pt_buffer_setup_aux(struct perf_event *event, void **pages, + int nr_pages, bool snapshot) { struct pt_buffer *buf; - int node, ret; + int node, ret, cpu = event->cpu; if (!nr_pages) return NULL; diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 092a0e8a479a..0d9964b5ed4d 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -292,7 +292,7 @@ struct pmu { /* * Set up pmu-private data structures for an AUX area */ - void *(*setup_aux) (int cpu, void **pages, + void *(*setup_aux) (struct perf_event *event, void **pages, int nr_pages, bool overwrite); /* optional */ diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 182bc30899d5..87171b700c77 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c @@ -522,7 +522,7 @@ int rb_alloc_aux(struct ring_buffer *rb, struct perf_event *event, goto out; } - rb->aux_priv = event->pmu->setup_aux(event->cpu, rb->aux_pages, nr_pages, + rb->aux_priv = event->pmu->setup_aux(event, rb->aux_pages, nr_pages, overwrite); if (!rb->aux_priv) goto out;