[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7042ba3307b34ce3b95e5fede823514e@AcuMS.aculab.com>
Date: Thu, 24 Sep 2020 13:47:54 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'YiFei Zhu' <zhuyifei1999@...il.com>,
"containers@...ts.linux-foundation.org"
<containers@...ts.linux-foundation.org>
CC: YiFei Zhu <yifeifz2@...inois.edu>,
"bpf@...r.kernel.org" <bpf@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Aleksa Sarai <cyphar@...har.com>,
"Andrea Arcangeli" <aarcange@...hat.com>,
Andy Lutomirski <luto@...capital.net>,
Dimitrios Skarlatos <dskarlat@...cmu.edu>,
Giuseppe Scrivano <gscrivan@...hat.com>,
Hubertus Franke <frankeh@...ibm.com>,
Jack Chen <jianyan2@...inois.edu>,
Jann Horn <jannh@...gle.com>,
Josep Torrellas <torrella@...inois.edu>,
Kees Cook <keescook@...omium.org>,
Tianyin Xu <tyxu@...inois.edu>,
Tobin Feldman-Fitzthum <tobin@....com>,
Tycho Andersen <tycho@...ho.pizza>,
Valentin Rothberg <vrothber@...hat.com>,
Will Drewry <wad@...omium.org>
Subject: RE: [PATCH v2 seccomp 2/6] asm/syscall.h: Add syscall_arches[] array
From: YiFei Zhu
> Sent: 24 September 2020 13:44
>
> Seccomp cache emulator needs to know all the architecture numbers
> that syscall_get_arch() could return for the kernel build in order
> to generate a cache for all of them.
>
> The array is declared in header as static __maybe_unused const
> to maximize compiler optimiation opportunities such as loop
> unrolling.
I doubt the compiler will do what you want.
Looking at it, in most cases there are one or two entries.
I think only MIPS has three.
So a static inline function that contains a list of
conditionals will generate better code that any kind of
array lookup.
For x86-64 you end up with something like:
#ifdef CONFIG_IA32_EMULATION
if (sd->arch == AUDIT_ARCH_I386) return xxx;
#endif
return yyy;
Probably saves you having multiple arrays that need to be
kept carefully in step.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists