Re: [PATCH 0/6] objtool: Add support for Arm64

From: Julien Thierry
Date: Wed Apr 10 2019 - 03:20:38 EST




On 10/04/2019 04:37, Josh Poimboeuf wrote:
> On Tue, Apr 09, 2019 at 10:43:18AM -0700, Ard Biesheuvel wrote:
>> On Tue, 9 Apr 2019 at 06:53, Raphael Gault <raphael.gault@xxxxxxx> wrote:
>>>
>>> Hi,
>>>
>>> As of now, objtool only supports the x86_64 architecture but the
>>> groundwork has already been done in order to add support for other
>>> architecture without too much effort.
>>>
>>> This series of patches adds support for the arm64 architecture
>>> based on the Armv8.5 Architecture Reference Manual.
>>>
>>
>> I think it makes sense to clarify *why* we want this on arm64. Also,
>> we should identify things that objtool does today that maybe we don't
>> want on arm64, rather than buy into all of it by default.
>
> Agreed, the "why" should at least be in the cover letter. From my
> perspective, the "why" includes:
>
> - Live patching - objtool stack validation is the foundation for a
> reliable unwinder
>

Yes, as I understand Live patching is a work in progress for arm64.
Having objtool to provide more guarantees would be nice.

> - ORC unwinder - benefits include presumed improved overall performance
> from disabling frame pointers, and the ability to unwind across
> interrupts and exceptions
>

I'm unsure this will be part of the plan. I believe so far arm64 code
heavily relies on the presence of frame pointers. It's also part of the
Aarch64 Procedure Call Standard.

But who knows.

> - PeterZ's new uaccess validation?
>

Yes, we've reverted twice our implementation of user_access_begin/end()
on arm64 because of the issue of potentially calling sleeping functions.

Once we have the base of objtool work, this would be one of the next
work items.

Thanks,

--
Julien Thierry