[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Feedback from the community -> ARM



On Thu, Jun 10, 2021 at 4:43 PM Uwe Kleine-König <uwe@kleine-koenig.org> wrote:
>
> Is there anything on your mind that is missing above and that you'd like
> to be shared with ARM? Feel free to reply here or discuss in
> #debian-arm. (I'm ukleinek there.)

I'll be at the meeting as well, and one point I would want to bring up
is support for 32-bit binaries on 64-bit kernels. This has come up a few times
on #debian-arm, and the problem is a mismatch between which obsolete
instructions are emulated depending on the kernel: 64-bit kernels emulate
all the instructions that were removed in v8 (setend, cp15 barriers, swp),
while 32-bit kernels emulate instructions that were already needed in
v7 (swp, mrc tlsreg, unaligned ldm/stm/ldrd/strd). This means that some
binaries that ran fine on an ARMv7 processor may break when running
on an ARMv8 processor with a 32-bit kernel, while other binaries may
break on the same hardware on a 64-bit kernel.

This situation is bad for Debian as there are mixed messages regarding
what users should actually run on ARMv8 hardware and what should
be tested. My hope is that we can find an agreement regarding which
of the emulation code we actually want on v8 processors and then make
sure that every binary that can run on a 32-bit kernel can also run on
a 64-bit kernel (but not necessarily the other way round). This could
mean adding features to arch/arm64/ that have previously been rejected,
or artificially crippling the emulation code in arch/arm/ when running on
v8 to force user space applications to get fixed.

Side note: yes, 32-bit user space code is still important to run for
a lot of users, especially in low-memory configurations, but support
for 32-bit kernels is unavailable on most newer CPU cores and
somewhat lacking even on older cores (missing errata workarounds
and certain features of 64-bit kernels).

        Arnd


Reply to: