Re: [linux-audit/audit-kernel] BUG: audit_classify_syscall() fails to properly handle 64-bit syscalls when executing as 32-bit application on ARM (#131)
From: Arnd Bergmann
Date: Mon Jul 05 2021 - 09:40:38 EST
On Fri, Jul 2, 2021 at 8:07 PM Yury Norov <yury.norov@xxxxxxxxx> wrote:
> On Thu, Jul 01, 2021 at 05:08:45AM -0700, Paul Moore wrote:
>
> To Catalin, Arnd:
>
> At least Marvell, Samsung, Huawei, Cisco and Weiyuchen's employer
> actively use and develop arm64/ilp32. I receive feedback / bugrepotrs
> on ilp32 every 4-6 month. Is that enough for you to reconsider
> including the project into the mainline?
>
> For me, having different versions of ILP32 is more dangerous in this
> situation, than upstreaming the project and fixing 2-3 bugs a year.
I think the overall tradeoff is not that different from what it was in the
past. Keeping it out of the tree clearly creates extra work both for you
and the users, but reduces the overhead for everyone else, who
can ignore that corner case. We have tried removing both x86-x32
support and arm64 big-endian support from the kernel not that long
ago. Both have considerably more impact on kernel maintenance than
your aarch64-ilp32 work, and they probably even have fewer users,
but we always ended up keeping the status quo.
However, there are clearly some changes that happened over the
past few years that may be relevant here:
- The expectation in the past was that ilp32 support would eventually
go away as users move on to full 64-bit support. It has survived a
lot longer than I would have guessed, but I still find it hard to tell
whether this would continue. What's more important than the current
number of users is how many of those you expect to run linux-6.x
or linux-7.x with aarch64-ilp32 in the future.
- Another thing that has changed is that we now have a rough timeline
for aarch32 support to be removed from future Arm processors. If
no Armv9 processors after 2022 support Aarch32 mode, we may see
interest in ilp32 mode go up between 2025 and 2030 when those
processors make it into more markets.
- On the other hand, interest in not just 32-bit hardware running Linux
but also in 32-bit user space is already declining overall. We'll
probably still see some 10 to 20 years of 32-bit user space
deployments on (mostly) memory constrained systems, but this
is getting increasingly obscure as more applications run into
virtual memory space restrictions (3GB or 4GB typically) before
they exceed the available RAM. On RV64 and ARCv3, there is
already a conclusion that they will not support 32-bit user space,
neither ilp32 style on 64-bit instructions nor with hardware support
for RV32/ARC32 binaries. I expect the same for Loongarch.
Arnd