Received: by 2002:a05:7412:40d:b0:e2:908c:2ebd with SMTP id 13csp623342rdf; Tue, 21 Nov 2023 11:27:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IFacY+uRWcMJZpSOEo8gHOSng+qbspLRQdCLXaV7j+8hWkVi1Vxlp3Z2zRnqGgUzyK1CfX/ X-Received: by 2002:a17:903:447:b0:1cc:548d:423b with SMTP id iw7-20020a170903044700b001cc548d423bmr70034plb.60.1700594820535; Tue, 21 Nov 2023 11:27:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700594820; cv=none; d=google.com; s=arc-20160816; b=cmPGM39qg+UvRELi3r7XxBmQU6ik36tosZk6Ko93yCl7tx8p3vZkzIroRzIkQ/xuVw iBnfg4ZyyTCyHZgfEFZgA9JiTAWeeM7FkGYy3tY4BQTcX6iBF9zkB8B/sKMNERiZVUMS m3J5wXCXys27bUGg6LxnpsX9g/aT8olfco+7OO4vcEWMuKtdcnIVTZqBC0Z9SOc5vd2s dnShyWWus5scpgyo+b4wHo6WL9EYG4lXidLC7lyFM1/Ia/tJ3b1mSm/8ArzGEFO91+9J nHxJVmgpBWmvE/P8fwvXtVc7tYw9OlXtfuGqgcVgQr1OJI0p/PywioPfla0yS/ty1n8u xQKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=94FgIpz3vHsssG2b8Hcx+KRI2PRoxK0rh3U/USA4Ock=; fh=ZX8A2MQuStSYzEksc9lOrMf4QCtN/c6rLdeRI4KaMnA=; b=nHyYIMf29YSC45ac6+zXTkilgfMVSQh+MpZfDa4FN+tuQI8o/0lSnUfeOr36n4Zm53 U68vn2gwSQYWAQSd2yOC37yQrtwnt6oXyrykAOfngrlMaIFjkMiAgAddh6kh3RLNXDYE XTAPIxDO8SV+viUwE/xIewAvbh7kd/TJAIYcZtxxDpF7RcqaJI8sDU/AOLVWP/WMXycF Ey1e7T3iEK8QCMyj3nHRhOvjd7CLkjNPhR8FCi8GyDhPbaWRICtQmCc3jlPEiP3X/TZm Jl2Nk7c/OCJPuvXgbIGkKIifQ2ikHBZNOjxzlf5Jyn9NtH95vmNDfIFJEKv1JI75GcL0 duPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=DrHhnQio; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id b14-20020a170903228e00b001cc2523cf08si11499960plh.428.2023.11.21.11.27.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 11:27:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=DrHhnQio; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id C14748075ECE; Tue, 21 Nov 2023 11:26:57 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229560AbjKUT0k (ORCPT + 99 others); Tue, 21 Nov 2023 14:26:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42188 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229498AbjKUT0j (ORCPT ); Tue, 21 Nov 2023 14:26:39 -0500 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8E92113 for ; Tue, 21 Nov 2023 11:26:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700594795; x=1732130795; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=ELOGQh+gKb6rAh4FmmnoQq+3Zh4xpb0Mf9OpFew1qB0=; b=DrHhnQioeznN7WZI/csLx+amGVTVnDyN3vG1zupFE1JReL/+ePn+6gRW mG8gq1+bpVhVkUEAI3uW8XqKFLSeAJCZLksJPgoLcd2AsIBrDoRVcz/oU kE1Zy8+zuukhnSmiLs+TV+WoxyUvGFgBIKbrVnIV/hy4qdMNjOncUOeCe kRmK7MFjNEXjlSrX8zdka/prgV5cixTtiNSarslr/1PB5RJpUcDElmTI8 SGdeQICn+qwosstNLBKcgUA04/rujuPYVcWe1FfWgkFXxsiT4ZXfzEAOQ cmxEz9D/Bi1Ui/SxWp8HoRujFbzAIo5p9LYxth02AqNTppjnu5mZit24z g==; X-IronPort-AV: E=McAfee;i="6600,9927,10901"; a="10579081" X-IronPort-AV: E=Sophos;i="6.04,216,1695711600"; d="scan'208";a="10579081" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2023 11:26:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10901"; a="716614095" X-IronPort-AV: E=Sophos;i="6.04,216,1695711600"; d="scan'208";a="716614095" Received: from linux.intel.com ([10.54.29.200]) by orsmga003.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2023 11:26:35 -0800 Received: from [10.209.157.143] (unknown [10.209.157.143]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by linux.intel.com (Postfix) with ESMTPS id 0EABD580BB9; Tue, 21 Nov 2023 11:26:33 -0800 (PST) Message-ID: <25e006f6-43a2-4046-a14e-a856285f5eed@linux.intel.com> Date: Tue, 21 Nov 2023 14:26:32 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/3] perf/x86: Add CAP_NO_INTERRUPT for uncore PMUs Content-Language: en-US To: Namhyung Kim Cc: Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Arnaldo Carvalho de Melo , LKML , Ian Rogers , Mingwei Zhang References: <20231120221932.213710-1-namhyung@kernel.org> <20231120221932.213710-3-namhyung@kernel.org> <66f74af2-21b6-477b-ada1-a8816ee115dc@linux.intel.com> From: "Liang, Kan" In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Tue, 21 Nov 2023 11:26:58 -0800 (PST) On 2023-11-21 1:30 p.m., Namhyung Kim wrote: > Hi Kan, > > On Tue, Nov 21, 2023 at 7:59 AM Liang, Kan wrote: >> >> >> >> On 2023-11-20 5:19 p.m., Namhyung Kim wrote: >>> It doesn't support sampling in uncore PMU events. While it's >>> technically possible to generate interrupts, let's treat it as if it >>> has no interrupt in order to skip the freq adjust/unthrottling logic >>> in the timer handler which is only meaningful to sampling events. >>> >>> Also remove the sampling event check because it'd be done in the general >>> code in the perf_event_open syscall. >>> >>> Signed-off-by: Namhyung Kim >>> --- >>> arch/x86/events/intel/uncore.c | 11 ++++++----- >>> 1 file changed, 6 insertions(+), 5 deletions(-) >>> >>> diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c >>> index 69043e02e8a7..f7e6228bd1b1 100644 >>> --- a/arch/x86/events/intel/uncore.c >>> +++ b/arch/x86/events/intel/uncore.c >>> @@ -744,10 +744,6 @@ static int uncore_pmu_event_init(struct perf_event *event) >>> if (pmu->func_id < 0) >>> return -ENOENT; >>> >>> - /* Sampling not supported yet */ >>> - if (hwc->sample_period) >>> - return -EINVAL; >>> - >>> /* >>> * Place all uncore events for a particular physical package >>> * onto a single cpu >>> @@ -919,7 +915,12 @@ static int uncore_pmu_register(struct intel_uncore_pmu *pmu) >>> .stop = uncore_pmu_event_stop, >>> .read = uncore_pmu_event_read, >>> .module = THIS_MODULE, >>> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE, >>> + /* >>> + * It doesn't allow sampling for uncore events, let's >>> + * treat the PMU has no interrupts to skip them in the >>> + * perf_adjust_freq_unthr_context(). >>> + */ >>> + .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, >>> .attr_update = pmu->type->attr_update, >>> }; >> >> >> There is a special customized uncore PMU which needs the flag as well. > > Ok, I will add that too. > > Btw, during the work I noticed many PMU drivers didn't set the > CAP_NO_INTERRUPT flag even if they didn't support sampling and > rejected the sampling events manually in the ->event_init() callback. > > I guess it's because the name of the flag is somewhat misleading. > As the PMU drivers handle IRQ (for overflows), they thought they had > interrupts and didn't set the flag. I think it'd be better to rename it to > CAP_NO_SAMPLING to reveal the intention. And then we could just set > the flag in the pmu.capabilities and remove the manual checks. > > The benefit is it can skip the PMUs in the timer tick handler even if > it needs to unthrottle some events. What do you think? > I agree. The current name is kind of misleading. The patch, which introduced the flag (commit id 53b25335dd60 ("perf: Disable sampled events if no PMU interrupt")), also tried to disable the sampled events on a no-sampling supported platform. The renaming sounds good to me. Thanks, Kan