From patchwork Mon Jun 17 17:04:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 49983 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:9196:0:b0:460:55fa:d5ed with SMTP id s22csp2077092vqg; Mon, 17 Jun 2024 10:04:38 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV+mn3qO0h+s4KAQTqF4FKyS0sKZXiJv6LNTF41qF6DOYGfXx744DH+XcyhU+xQVcXgaMqV9hZB+ZUTQXoNmT9lzvOLRHuZfUmKBw== X-Google-Smtp-Source: AGHT+IH8aVRidUIJpiknAPivQwXIBIsI9BLKOjFe1t/0ryaAFWUQTRjLCZxOgirE155VmexTglAi X-Received: by 2002:a17:906:7955:b0:a6f:4dfc:5f32 with SMTP id a640c23a62f3a-a6f60e01101mr834098366b.7.1718643878584; Mon, 17 Jun 2024 10:04:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718643878; cv=none; d=google.com; s=arc-20160816; b=fkyje9m67DOIwbno9PgjsGfdnNjlCO8eSgd/wHwOsH0T1Y+yT+eXMhnTHHuUkUiwc0 KfjagSoSs5CymI7IAITuVQOCAQD5iLBQUqw3eGewoQ47Cogojvq1QrkKhAPZkvC0v1Vv IYudGSu3xtxjC8tERsF5pIIk1hS7uc2B4mG0vHSNyiTMSapJjoUWKr/SBrjBOduinY2M nT2Rj5LJA20bpzyUdm4H2GBYn5dcyEJtsxmhblCib4Lc5amScL+cOzWFLV5GbA4GUFCb 94XMJ6qGi50o45dvUNMZKz64dNhrswx2ZAV15zyjmAu3ohJdmN+Bh5K26AnhPkL0QQVj yIyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=H8gtO4PhUROThIYAuoVnHs/6abb7vEorNylf11q2iYc=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=Iogcn4MoUTUOC4a2JI5X7UVaKRl82CjHDRqjrRa8Q2LXzqzqe6M5bKjtqDx1FWf2ZP 3YQUXkPvhmAeLWwmffEkdMVQO8n4qreYWyrISvwKOdKz7JkT5Uc7+cDU+vvRlnNRJtZs 3hjl7jZyeN9AByF3AZ1bh/jxWc/iMfotmIE6GdlO2ICrDEqExFHWA3XDDy1ZlpG6miiF MN+hIVHUyK/Tf3zOr7csrH0Q1hDekv33qYJDsuvW1jBehHumlMDZZpm5v1SOUyIBAr1X IKVIsBeCjvUeq9aOBfV56m4+AhliN7Jjt9vR9Vuo43+K5AZyFf25gz9CEZRcQHiDp+7V JuDQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=YQ9xFU0i; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a6f56d21839si466608766b.71.2024.06.17.10.04.38; Mon, 17 Jun 2024 10:04:38 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=YQ9xFU0i; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CDB4F68D779; Mon, 17 Jun 2024 20:04:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-80.mail.qq.com (out203-205-251-80.mail.qq.com [203.205.251.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 019D368D72A for ; Mon, 17 Jun 2024 20:04:15 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1718643846; bh=tPofTTzAiBRH/8DLkW8WkMkwMJPeoD99HHZR37/j4hM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=YQ9xFU0iWyfhHb7V9CUMb+bWAXKma/7VLlojDqrop4HUM5G/S9Idqw6BIVyV0NQmu 4KfcRKVEuZPWzsA+8Q2/CmbF5oQ9SQMDiy6aCCxHvn+l5UiL3on0BMQCEVJQOJdY1d RZX+lcrwtf15W+S4iLMeXMLFT/kbBO97Zzb/rbsE= Received: from ZHILIZHAO-MB1.tencent.com ([113.116.28.85]) by newxmesmtplogicsvrsza10-0.qq.com (NewEsmtp) with SMTP id 10325A81; Tue, 18 Jun 2024 01:04:03 +0800 X-QQ-mid: xmsmtpt1718643844tef8gkmkk Message-ID: X-QQ-XMAILINFO: OdDhBiKk1LgM1hzU5twUOgVLZFdGmRXlqL9rZdfXqz7eyBMchA8IpEPhxoI16/ 1gePJwn75fqW6ePTHgY+f4PbRk6EZT3189+UaJGBDU3AwblHyeNdMO7r2kIrR3InhijYEuNtcaXj QDaTFTo+K6uMUdKEso/z8xCPqba16xYBu0Q14+qqser1LWcIdv2cz+SxDc1+VxfUHXzY3ZyX7MrN FYRDF4b+5z7jTH19gr9qAz4vgh9ky7Pmjl8neialnNch2cnPUH7wBcuPILNPhNlhMVCXB3KoRiw3 qUQobCbTRrZAzy4RKhEjNofIeHTF23AJ+3oE1giOa7JneoAnyEle9latrVKd/f8/umn6qMo+r37v uXbwTm0UcohjhEk0fo+mP/eQanemimDQHl/ka5pGiMM4mISYQGppnX+EH6XYWJQvSrg5+rISQ7aM BRM3IgcHM+m0fA3nr+mO/fsjFKdyimNNBD2a0EBIelIRxasz8ceLPzlBbpV+jbVHgdAWDk+h0TKH VU2UJOGBSlwX48MZKzXANfPBVtHQSU6TSU2Fv8tm3M6TTGr8D4qVYjerCZcseRpT1c5WAXOyInZS eGTqR8VP9hUYVCW54GVtQuPSpAk6/8dqZ37lJRizi1cVzej9kcS4Xs5G/6uhnPJpWJlX07XMbkv1 D9GZlCSDZMUbPtQPRNoAscOM4QSp/PGgHa4aqblKi2h/dBwNFs/nwAJYbAXMEPXij71zjL6Of1+t 7VcQ0oHMyvt3r/Qh0bMKjWd011ysVLPrqcqmTNn01G67R2ha6PydS9V9/QLO9stao9dcGgyv3mlb suGHHdbrq2L+wIypB59kyedolCa84nCN4KGiLYTSSEUUQKqtwhAFc+Kt48zGsPa3AwbTxPbh6FSw zD4RFOHPolg3T4wCirnvzq/AaDYGGBKgUJyC/lWCpMifCI5sTmLfg+020OqAZVx0MsKyyKJgKf3b DCIsHWhVjlRaLIUAxsz9Iqf4upkwcXLtllxrWsAkGTdoK7vk4PY6N3FupCwPCqxIWWgSDWlLA= X-QQ-XMRINFO: NS+P29fieYNw95Bth2bWPxk= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 18 Jun 2024 01:04:00 +0800 X-OQ-MSGID: <20240617170400.59734-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240617170400.59734-1-quinkblack@foxmail.com> References: <20240617170400.59734-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/2] avutil/macos_kperf: Fix assert which makes kperf failed to run X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 4DCQKHD5179G From: Zhao Zhili On m1, kpc_get_counter_count(KPC_MASK) return 8 in my test. The exact value doesn't matter in our case, as long as we have a sufficiently large array Signed-off-by: Zhao Zhili --- libavutil/macos_kperf.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libavutil/macos_kperf.c b/libavutil/macos_kperf.c index 9fb047eeee..b2c1d164ac 100644 --- a/libavutil/macos_kperf.c +++ b/libavutil/macos_kperf.c @@ -67,14 +67,15 @@ KPERF_LIST #define KPC_CLASS_POWER_MASK (1 << 2) #define KPC_CLASS_RAWPMU_MASK (1 << 3) -#define COUNTERS_COUNT 10 +#define KPC_MAX_COUNTERS 32 #define CONFIG_COUNT 8 #define KPC_MASK (KPC_CLASS_CONFIGURABLE_MASK | KPC_CLASS_FIXED_MASK) static void kperf_init(void) { - uint64_t config[COUNTERS_COUNT] = {0}; + uint64_t config[CONFIG_COUNT] = {0}; void *kperf = NULL; + uint32_t n; av_assert0(kperf = dlopen("/System/Library/PrivateFrameworks/kperf.framework/Versions/A/kperf", RTLD_LAZY)); @@ -82,8 +83,10 @@ static void kperf_init(void) KPERF_LIST #undef F - av_assert0(kpc_get_counter_count(KPC_MASK) == COUNTERS_COUNT); - av_assert0(kpc_get_config_count(KPC_MASK) == CONFIG_COUNT); + n = kpc_get_counter_count(KPC_MASK); + av_assert0(n <= KPC_MAX_COUNTERS); + n = kpc_get_config_count(KPC_MASK); + av_assert0(n <= CONFIG_COUNT); config[0] = CPMU_CORE_CYCLE | CFGWORD_EL0A64EN_MASK; // config[3] = CPMU_INST_BRANCH | CFGWORD_EL0A64EN_MASK; @@ -104,8 +107,9 @@ void ff_kperf_init(void) uint64_t ff_kperf_cycles(void) { - uint64_t counters[COUNTERS_COUNT]; - if (kpc_get_thread_counters(0, COUNTERS_COUNT, counters)) { + uint64_t counters[KPC_MAX_COUNTERS]; + + if (kpc_get_thread_counters(0, KPC_MAX_COUNTERS, counters)) { return -1; }