Received: by 10.223.164.202 with SMTP id h10csp30456wrb; Thu, 9 Nov 2017 02:09:56 -0800 (PST) X-Google-Smtp-Source: ABhQp+RqVSgDSYPZ4LegZRKqnFG6+yo5UcygUGmQwusijSnTFkv9H/7fAFuGdpowd+6MSkb//reM X-Received: by 10.98.86.17 with SMTP id k17mr3629205pfb.127.1510222196409; Thu, 09 Nov 2017 02:09:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510222196; cv=none; d=google.com; s=arc-20160816; b=ijmSdrXT6nCD4eCXZfmUpAsuDoLJjsao1RUw5jDdFhDFo8Sv+jJBBS88obaaU18jsi iXcPibt7bM7wqyJpHAucVraBaMOhh/e66hjM1FfVPxmn9ohuyP6+v27s9hYH/XJ05zkI lHRCi06+G/5NnfbExvdWlVlOlAKFAE/rexOUY9mJdD6UyiGCvdjwrJql3rv+TOem/WIk XVce97sHpqllOKYhJ+KWFCAWxY9jsgzUuhUKPKbDwBlfagfm8bTN7Q+NsXAbwDajH01u 2issAOk3Qbp16ayagA8HA6pzS6jioBjVqHpZjKt3fMQTrSTiiIODC0z7AExkFUH8JZio bgyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=jwk3PtH3SLMD+m9eqIL9UizedCpFCQgkHyVUM8ebzG0=; b=ZxLxtmeiIIRF68egni16nlhBJVAmclQHeF78ERb+nHATACmkpQDaGgWik59TiSOa+G X04oDqH3s+iqjsiEuBoQ7CR/aQ7R+jOykv6UlJf585UxNUPFVJa1dVxB3ZyUhJLFQxsM IfjaL5FX+gxU8107CwDR1qKCk2WEd4F3swlEadOEPT5qldDNCt8F4Vf46plWmrp97kOJ fBjIK5QGtjQs4uAVtYFKKHJ3BB3tNjrGffAVaceOADWg7bnCU3h2rIoM2HkCriV/Pd0b sM7WVjyTiL4qHmTNmwzSJv60jxKuZONAknZnR4LwMWfyjFuz+oeeiIPUAW2ETKiPHY+w 5nkA== 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 1si5854124plz.723.2017.11.09.02.09.44; Thu, 09 Nov 2017 02:09:56 -0800 (PST) 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 S1754110AbdKIKHZ (ORCPT + 81 others); Thu, 9 Nov 2017 05:07:25 -0500 Received: from foss.arm.com ([217.140.101.70]:44280 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752920AbdKIKHX (ORCPT ); Thu, 9 Nov 2017 05:07:23 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A20A414; Thu, 9 Nov 2017 02:07:23 -0800 (PST) Received: from [10.1.206.28] (e107814-lin.cambridge.arm.com [10.1.206.28]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 384883F246; Thu, 9 Nov 2017 02:07:22 -0800 (PST) Subject: Re: [PATCH v10 5/7] perf: cavium: Support memory controller PMU counters To: Jan Glauber , Mark Rutland , Will Deacon Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Borislav Petkov , David Daney , Zhangshaokun References: <20170925123502.17289-1-jglauber@cavium.com> <20170925123502.17289-6-jglauber@cavium.com> From: Suzuki K Poulose Message-ID: <6ff478bb-ebaf-da43-3ee8-2889209278ca@arm.com> Date: Thu, 9 Nov 2017 10:07:02 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20170925123502.17289-6-jglauber@cavium.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 25/09/17 13:35, Jan Glauber wrote: > Add support for the PMU counters on Cavium SOC memory controllers. > > This patch also adds generic functions to allow supporting more > devices with PMU counters. > > Properties of the LMC PMU counters: > - not stoppable > - fixed purpose > - read-only > - one PCI device per memory controller > > Signed-off-by: Jan Glauber > --- > drivers/perf/Kconfig | 8 + > drivers/perf/Makefile | 1 + > drivers/perf/cavium_pmu.c | 430 ++++++++++++++++++++++++++++++++++++++++ > drivers/soc/cavium/cavium_lmc.c | 4 + > include/linux/cpuhotplug.h | 1 + > include/linux/soc/cavium/lmc.h | 3 + > 6 files changed, 447 insertions(+) > create mode 100644 drivers/perf/cavium_pmu.c > +int cvm_lmc_pmu_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > +{ > + struct cvm_pmu_dev *next, *lmc; > + int nr = 0, ret = -ENOMEM; > + char *name; > + > + lmc = devm_kzalloc(&pdev->dev, sizeof(*lmc), GFP_KERNEL); > + if (!lmc) > + return -ENOMEM; > + > + lmc->map = devm_ioremap(&pdev->dev, pci_resource_start(pdev, 0), > + pci_resource_len(pdev, 0)); > + if (!lmc->map) > + return -EINVAL; > + > + list_for_each_entry(next, &cvm_pmu_lmcs, entry) > + nr++; > + name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "lmc%d", nr); > + if (!name) > + return -ENOMEM; > + > + lmc->pdev = pdev; > + lmc->num_counters = ARRAY_SIZE(cvm_pmu_lmc_events_attr) - 1; > + lmc->pmu = (struct pmu) { > + .task_ctx_nr = perf_invalid_context, > + .name = name, > + .event_init = cvm_pmu_event_init, > + .add = cvm_pmu_lmc_add, > + .del = cvm_pmu_del, > + .start = cvm_pmu_start, > + .stop = cvm_pmu_stop, > + .read = cvm_pmu_read, > + .attr_groups = cvm_pmu_lmc_attr_groups, > + }; > + You need to fill in the "module" field of the PMU to prevent the module from being unloaded while the PMU is active. See : http://lists.infradead.org/pipermail/linux-arm-kernel/2017-November/540647.html Suzuki From 1579521314979938679@xxx Mon Sep 25 14:15:10 +0000 2017 X-GM-THRID: 1579521314979938679 X-Gmail-Labels: Inbox,Category Forums