Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities
@ 2022-02-04 20:16 Aman Karmani
  2022-02-04 22:20 ` Martin Storsjö
  0 siblings, 1 reply; 3+ messages in thread
From: Aman Karmani @ 2022-02-04 20:16 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Aman Karmani

From: Aman Karmani <aman@tmm1.net>

fixes #6578

Signed-off-by: Aman Karmani <aman@tmm1.net>
---
 libavutil/arm/cpu.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/libavutil/arm/cpu.c b/libavutil/arm/cpu.c
index 81e85e2525..983e5a4d83 100644
--- a/libavutil/arm/cpu.c
+++ b/libavutil/arm/cpu.c
@@ -36,6 +36,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
+#include <sys/auxv.h>
 #include "libavutil/avstring.h"
 
 #define AT_HWCAP        16
@@ -48,6 +49,15 @@
 #define HWCAP_VFPv3     (1 << 13)
 #define HWCAP_TLS       (1 << 15)
 
+static int get_auxval(uint32_t *hwcap)
+{
+    unsigned long ret = getauxval(AT_HWCAP);
+    if (ret == 0)
+        return -1;
+    *hwcap = ret;
+    return 0;
+}
+
 static int get_hwcap(uint32_t *hwcap)
 {
     struct { uint32_t a_type; uint32_t a_val; } auxv;
@@ -106,9 +116,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".

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities
  2022-02-04 20:16 [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities Aman Karmani
@ 2022-02-04 22:20 ` Martin Storsjö
  2022-02-05  6:25   ` Aman Karmani
  0 siblings, 1 reply; 3+ messages in thread
From: Martin Storsjö @ 2022-02-04 22:20 UTC (permalink / raw)
  To: FFmpeg development discussions and patches; +Cc: Aman Karmani

On Fri, 4 Feb 2022, Aman Karmani wrote:

> From: Aman Karmani <aman@tmm1.net>
>
> fixes #6578
>
> Signed-off-by: Aman Karmani <aman@tmm1.net>
> ---
> libavutil/arm/cpu.c | 17 ++++++++++++++---
> 1 file changed, 14 insertions(+), 3 deletions(-)

It would be good if the commit message actually explained the upsides to 
doing this.

It's also important to point out that this function didn't use to exist in 
all Android versions (hence the /proc/cpuinfo parsing). The point when the 
function appeared (Android 4.4, API 20, according to the referenced trac 
issue) is kinda far in the past today, but I'm not sure if strictly all 
users of the library have stopped supporting older versions still - at 
least for some use cases I've heard of recently, Android 4.1 was still 
supported.

If coupled with a configure check for the function, so that users 
explicitly targeting an older version that lack it wouldn't get it, I 
guess this could be more easily acceptable.

// Martin

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities
  2022-02-04 22:20 ` Martin Storsjö
@ 2022-02-05  6:25   ` Aman Karmani
  0 siblings, 0 replies; 3+ messages in thread
From: Aman Karmani @ 2022-02-05  6:25 UTC (permalink / raw)
  To: Martin Storsjö; +Cc: FFmpeg development discussions and patches

On Fri, Feb 4, 2022 at 2:20 PM Martin Storsjö <martin@martin.st> wrote:

> On Fri, 4 Feb 2022, Aman Karmani wrote:
>
> > From: Aman Karmani <aman@tmm1.net>
> >
> > fixes #6578
> >
> > Signed-off-by: Aman Karmani <aman@tmm1.net>
> > ---
> > libavutil/arm/cpu.c | 17 ++++++++++++++---
> > 1 file changed, 14 insertions(+), 3 deletions(-)
>
> It would be good if the commit message actually explained the upsides to
> doing this.
>
> It's also important to point out that this function didn't use to exist in
> all Android versions (hence the /proc/cpuinfo parsing). The point when the
> function appeared (Android 4.4, API 20, according to the referenced trac
> issue) is kinda far in the past today, but I'm not sure if strictly all
> users of the library have stopped supporting older versions still - at
> least for some use cases I've heard of recently, Android 4.1 was still
> supported.
>
> If coupled with a configure check for the function, so that users
> explicitly targeting an older version that lack it wouldn't get it, I
> guess this could be more easily acceptable.


Thanks for the review.

I discovered some older Linux arm toolchains (< glibc 2.16) are also
missing the function, so a configure check seems prudent.

Sent v2 patch with the requested changes.


>
> // Martin
>
>
_______________________________________________
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".

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-02-05  6:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-04 20:16 [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities Aman Karmani
2022-02-04 22:20 ` Martin Storsjö
2022-02-05  6:25   ` Aman Karmani

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git