From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 6DAE140BDA for ; Sat, 5 Feb 2022 06:10:26 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 416B968B32A; Sat, 5 Feb 2022 08:10:21 +0200 (EET) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 36E3468B21C for ; Sat, 5 Feb 2022 08:10:15 +0200 (EET) Received: by mail-pl1-f176.google.com with SMTP id t9so4735466plg.13 for ; Fri, 04 Feb 2022 22:10:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5CeDNZZ1zPvr7LZJEZbu4vKZ7Dr4nGB5I4nN6pT19zU=; b=IrPdROOTbzeziP2HC8imCY5D9j1Yz4CXcsRwZTD1cp0BEyIrN9yOCbnXgFQV9Owpfv q+9WS2jpXBvj+UoJ3cj4RgNIZItfzm7j2ADADFMVRlanrOt3z+t7lDRe/p1UWEHsrhVa 5CGQA2+fbdDJND9p2EszdnjVG9n5/wBZ6VOZEOCfFwJGSGiIDBuwQ44lQEwq+Ek5N8mX CGYoNSDNhaoe3Z2s9uCI8Fzcprz46K5JrgwoKHGCTIYv1kZK+5rBBCdB+5k/reo18ze5 5eIJXcjwLIXnZ/v9f2RAEP7U89U2Tl+F7AjSStWpBA1fUk6mxwXqrTU7mt+GWZPsTRKE Kofw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=5CeDNZZ1zPvr7LZJEZbu4vKZ7Dr4nGB5I4nN6pT19zU=; b=v6nC5NVkulDc1ygr/Mz1cqcq7Hf9oZ3Gwgp4MWuK37yT2Scj0nwB1aaVEn43zwtvx+ CplAK64UDKf/RPP5cO+25cNq4GVGOqh+xsDQwGkCPFx609G9fHd4t13kdX47T2eHzkeG 5bVAkt81sD6PdZIX/TrXN79XZCDme1G2U1e38bv0doMyYBvk6QBNsx9LkKR1RUkKZg7M Ms1aHwXoCxeTc9a6YzaBc7b+uZ/GbtJ8K/aiGbsgpkdtOLcPUoRimQjoU3wCa+KJloID SFYhVdz8DrMDNe4ZOX28XwjIZtxRj2pkGM4vEpnhRqMLU2rh+nM9auJDlfVyd88Wh59x gfkQ== X-Gm-Message-State: AOAM530jIEov3bGCYZbSQlPGM37GjYNmDlr1SIBTlTMUt5Bn01XvUwED VEqf3FKbjKDcpeBXbQi7qkclfz5ckh8= X-Google-Smtp-Source: ABdhPJzuhhyJMaufo7LRL96WI4jdvO8GttxDzA6VOGyMA3FYM8GuFcqSPhW4FGBBw5TwCLyb65rVgw== X-Received: by 2002:a17:902:ea10:: with SMTP id s16mr6440005plg.167.1644041412361; Fri, 04 Feb 2022 22:10:12 -0800 (PST) Received: from tmm1-imac.lan ([2600:8802:5501:308f:1971:262e:eef9:f1f3]) by smtp.gmail.com with ESMTPSA id g9sm4685263pfc.109.2022.02.04.22.10.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Feb 2022 22:10:11 -0800 (PST) From: Aman Karmani To: ffmpeg-devel@ffmpeg.org Date: Fri, 4 Feb 2022 22:10:08 -0800 Message-Id: <20220205061008.92381-1-ffmpeg@tmm1.net> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] avutil: use getauxval for CPU capabilities on linux/android ARM 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: martin@martin.st, Aman Karmani Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Aman Karmani getauxval is faster, and works when procfs is not mounted note that support on Android was added in 4.4 (API 20) fixes #6578 Signed-off-by: Aman Karmani --- configure | 1 + libavutil/arm/cpu.c | 24 +++++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 5b19a35f59..d21cfb4cbd 100755 --- a/configure +++ b/configure @@ -6265,6 +6265,7 @@ check_func_headers lzo/lzo1x.h lzo1x_999_compress check_func_headers mach/mach_time.h mach_absolute_time check_func_headers stdlib.h getenv check_func_headers sys/stat.h lstat +check_func_headers sys/auxv.h getauxval check_func_headers windows.h GetModuleHandle check_func_headers windows.h GetProcessAffinityMask diff --git a/libavutil/arm/cpu.c b/libavutil/arm/cpu.c index 81e85e2525..c84a655c37 100644 --- a/libavutil/arm/cpu.c +++ b/libavutil/arm/cpu.c @@ -38,6 +38,10 @@ #include #include "libavutil/avstring.h" +#if HAVE_GETAUXVAL +#include +#endif + #define AT_HWCAP 16 /* Relevant HWCAP values from kernel headers */ @@ -48,6 +52,19 @@ #define HWCAP_VFPv3 (1 << 13) #define HWCAP_TLS (1 << 15) +static int get_auxval(uint32_t *hwcap) +{ +#if HAVE_GETAUXVAL + unsigned long ret = getauxval(AT_HWCAP); + if (ret == 0) + return -1; + *hwcap = ret; + return 0; +#else + return -1; +#endif +} + static int get_hwcap(uint32_t *hwcap) { struct { uint32_t a_type; uint32_t a_val; } auxv; @@ -106,9 +123,10 @@ int ff_get_cpu_flags_arm(void) int flags = CORE_CPU_FLAGS; uint32_t hwcap; - if (get_hwcap(&hwcap) < 0) - if (get_cpuinfo(&hwcap) < 0) - return flags; + if (get_auxval(&hwcap) < 0) + if (get_hwcap(&hwcap) < 0) + if (get_cpuinfo(&hwcap) < 0) + return flags; #define check_cap(cap, flag) do { \ if (hwcap & HWCAP_ ## cap) \ -- 2.33.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".