From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54240C433E0 for ; Mon, 21 Dec 2020 05:42:21 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9DD522250E for ; Mon, 21 Dec 2020 05:42:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9DD522250E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ellerman.id.au Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 4CzpJT1pSjzDqMd for ; Mon, 21 Dec 2020 16:42:17 +1100 (AEDT) Received: from ozlabs.org (bilbo.ozlabs.org [IPv6:2401:3900:2:1::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4CzpGc6cPZzDqKs for ; Mon, 21 Dec 2020 16:40:40 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=ellerman.id.au Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=ellerman.id.au header.i=@ellerman.id.au header.a=rsa-sha256 header.s=201909 header.b=NexIgke5; dkim-atps=neutral Received: from authenticated.ozlabs.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ozlabs.org (Postfix) with ESMTPSA id 4CzpGc0z8pz9sVk; Mon, 21 Dec 2020 16:40:39 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ellerman.id.au; s=201909; t=1608529240; bh=QZjaGsP20Bc9X9hyCXPWA9UWMoG7P+zj6bb9h8pPwTY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=NexIgke5e7rs//whl9xKdvo6hVstOJCOdZN9Gg0GpQNlBPXx7iHEy0qWltWHS1GkJ Fx3rS/oAQxRVidn3kxYdLoU8EzrhSdRSfQDj5luRMbzzSIqV3DX0LL/FWNkkuMFPRD UynVnXubJwoncvXlb1P0ojUS7TGCmxjUsokTqo50eYCsqpveVH6h5ET71uFDsR2Uix v7fHytBqDqqVzWUor7LWNtuSVqqFUxGVyQTAgSLzT9dkJ0YDI3LE6vpDuhVy5L7dYX yAztcjA40i0Hwzxlc2T+VVk93IrO8XtluKc001WO6oPynqFdfM1o8faeXF18nERHrG 3xmKhUT8mLPmQ== From: Michael Ellerman To: Kajol Jain , linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v2] powerpc/perf/hv-24x7: Dont create sysfs event files for dummy events In-Reply-To: <20201218100100.1166111-1-kjain@linux.ibm.com> References: <20201218100100.1166111-1-kjain@linux.ibm.com> Date: Mon, 21 Dec 2020 16:40:36 +1100 Message-ID: <87im8vyawb.fsf@mpe.ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kjain@linux.ibm.com, suka@us.ibm.com, maddy@linux.vnet.ibm.com, atrajeev@linux.vnet.ibm.com Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" Kajol Jain writes: > hv_24x7 performance monitoring unit creates list of supported events > from the event catalog obtained via HCALL. hv_24x7 catalog could also > contain invalid or dummy events (with names like FREE_* or CPM_FREE_* > and RESERVED*). These events do not have any hardware counters > backing them. So patch adds a check to string compare the event names > to filter out them. > > Result in power9 machine: > > Before this patch: > ..... > hv_24x7/PM_XLINK2_OUT_ODD_CYC,chip=?/ [Kernel PMU event] > hv_24x7/PM_XLINK2_OUT_ODD_DATA_COUNT,chip=?/ [Kernel PMU event] > hv_24x7/PM_XLINK2_OUT_ODD_TOTAL_UTIL,chip=?/ [Kernel PMU event] > hv_24x7/PM_XTS_ATR_DEMAND_CHECKOUT,chip=?/ [Kernel PMU event] > hv_24x7/PM_XTS_ATR_DEMAND_CHECKOUT_MISS,chip=?/ [Kernel PMU event] > hv_24x7/PM_XTS_ATSD_SENT,chip=?/ [Kernel PMU event] > hv_24x7/PM_XTS_ATSD_TLBI_RCV,chip=?/ [Kernel PMU event] > hv_24x7/RESERVED_NEST1,chip=?/ [Kernel PMU event] > hv_24x7/RESERVED_NEST10,chip=?/ [Kernel PMU event] > hv_24x7/RESERVED_NEST11,chip=?/ [Kernel PMU event] > hv_24x7/RESERVED_NEST12,chip=?/ [Kernel PMU event] > hv_24x7/RESERVED_NEST13,chip=?/ [Kernel PMU event] > ...... > > Dmesg: > [ 0.000362] printk: console [hvc0] enabled > [ 0.815452] hv-24x7: read 1530 catalog entries, created 537 event attrs > (0 failures), 275 descs > > After this patch: > ...... > hv_24x7/PM_XLINK2_OUT_ODD_AVLBL_CYC,chip=?/ [Kernel PMU event] > hv_24x7/PM_XLINK2_OUT_ODD_CYC,chip=?/ [Kernel PMU event] > hv_24x7/PM_XLINK2_OUT_ODD_DATA_COUNT,chip=?/ [Kernel PMU event] > hv_24x7/PM_XLINK2_OUT_ODD_TOTAL_UTIL,chip=?/ [Kernel PMU event] > hv_24x7/PM_XTS_ATR_DEMAND_CHECKOUT,chip=?/ [Kernel PMU event] > hv_24x7/PM_XTS_ATR_DEMAND_CHECKOUT_MISS,chip=?/ [Kernel PMU event] > hv_24x7/PM_XTS_ATSD_SENT,chip=?/ [Kernel PMU event] > hv_24x7/PM_XTS_ATSD_TLBI_RCV,chip=?/ [Kernel PMU event] > hv_24x7/TOD,chip=?/ [Kernel PMU event] > ...... > > Demsg: > [ 0.000357] printk: console [hvc0] enabled > [ 0.808592] hv-24x7: read 1530 catalog entries, created 509 event attrs > (0 failures), 275 descs > > Signed-off-by: Kajol Jain > --- > arch/powerpc/perf/hv-24x7.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > --- > Changelog > v1 -> v2 > - Include "RESERVED*" as part of the invalid event check as > suggested by Madhavan Srinivasan > - Add new helper function "ignore_event" to check invalid/dummy > events as suggested by Michael Ellerman > - Remove pr_info to print each invalid event as suggested by > Michael Ellerman > --- > diff --git a/arch/powerpc/perf/hv-24x7.c b/arch/powerpc/perf/hv-24x7.c > index 6e7e820508df..1a6004d88f98 100644 > --- a/arch/powerpc/perf/hv-24x7.c > +++ b/arch/powerpc/perf/hv-24x7.c > @@ -764,6 +764,16 @@ static ssize_t catalog_event_len_validate(struct hv_24x7_event_data *event, > return ev_len; > } > > +/* > + * Return true incase of invalid or dummy events with names like FREE_* or CPM_FREE_* > + * and RESERVED* > + */ > +static bool ignore_event(const char *name) > +{ > + return (strstr(name, "FREE_") || !strncmp(name, "RESERVED", 8)) ? > + true : false; That's FREE_ anywhere in the string, which seems a bit loose. Do we have any documentation or anything that tells us that any event with "FREE_" in the name will always be invalid? cheers