linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Puranjay Mohan <puranjay@kernel.org>
To: Xu Kuohai <xukuohai@huaweicloud.com>,
	bpf@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Andrii Nakryiko <andrii@kernel.org>,
	Leon Hwang <hffilwlqm@gmail.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>
Subject: Re: [PATCH bpf-next 0/2] bpf, arm64: Simplify jited prologue/epilogue
Date: Mon, 26 Aug 2024 10:37:33 +0000	[thread overview]
Message-ID: <mb61pplpvo9hu.fsf@kernel.org> (raw)
In-Reply-To: <20240826071624.350108-1-xukuohai@huaweicloud.com>

[-- Attachment #1: Type: text/plain, Size: 1912 bytes --]

Xu Kuohai <xukuohai@huaweicloud.com> writes:

> From: Xu Kuohai <xukuohai@huawei.com>
>
> The arm64 jit blindly saves/restores all callee-saved registers, making
> the jited result looks a bit too compliated. For example, for an empty
> prog, the jited result is:
>
>    0:   bti jc
>    4:   mov     x9, lr
>    8:   nop
>    c:   paciasp
>   10:   stp     fp, lr, [sp, #-16]!
>   14:   mov     fp, sp
>   18:   stp     x19, x20, [sp, #-16]!
>   1c:   stp     x21, x22, [sp, #-16]!
>   20:   stp     x26, x25, [sp, #-16]!
>   24:   mov     x26, #0
>   28:   stp     x26, x25, [sp, #-16]!
>   2c:   mov     x26, sp
>   30:   stp     x27, x28, [sp, #-16]!
>   34:   mov     x25, sp
>   38:   bti j 		// tailcall target
>   3c:   sub     sp, sp, #0
>   40:   mov     x7, #0
>   44:   add     sp, sp, #0
>   48:   ldp     x27, x28, [sp], #16
>   4c:   ldp     x26, x25, [sp], #16
>   50:   ldp     x26, x25, [sp], #16
>   54:   ldp     x21, x22, [sp], #16
>   58:   ldp     x19, x20, [sp], #16
>   5c:   ldp     fp, lr, [sp], #16
>   60:   mov     x0, x7
>   64:   autiasp
>   68:   ret
>
> Clearly, there is no need to save/restore unused callee-saved registers.
> This patch does this change, making the jited image to only save/restore
> the callee-saved registers it uses.
>
> Now the jited result of empty prog is:
>
>    0:   bti jc
>    4:   mov     x9, lr
>    8:   nop
>    c:   paciasp
>   10:   stp     fp, lr, [sp, #-16]!
>   14:   mov     fp, sp
>   18:   stp     xzr, x26, [sp, #-16]!
>   1c:   mov     x26, sp
>   20:   bti j		// tailcall target
>   24:   mov     x7, #0
>   28:   ldp     xzr, x26, [sp], #16
>   2c:   ldp     fp, lr, [sp], #16
>   30:   mov     x0, x7
>   34:   autiasp
>   38:   ret
>
> Xu Kuohai (2):
>   bpf, arm64: Get rid of fpb
>   bpf, arm64: Avoid blindly saving/restoring all callee-saved registers
>

Acked-by: Puranjay Mohan <puranjay@kernel.org>

Thanks,
Puranjay Mohan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 255 bytes --]

  parent reply	other threads:[~2024-08-26 10:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-26  7:16 [PATCH bpf-next 0/2] bpf, arm64: Simplify jited prologue/epilogue Xu Kuohai
2024-08-26  7:16 ` [PATCH bpf-next 1/2] bpf, arm64: Get rid of fpb Xu Kuohai
2024-08-26  7:16 ` [PATCH bpf-next 2/2] bpf, arm64: Avoid blindly saving/restoring all callee-saved registers Xu Kuohai
2024-08-26 10:37 ` Puranjay Mohan [this message]
2024-08-28 15:50 ` [PATCH bpf-next 0/2] bpf, arm64: Simplify jited prologue/epilogue patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=mb61pplpvo9hu.fsf@kernel.org \
    --to=puranjay@kernel.org \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=daniel@iogearbox.net \
    --cc=hffilwlqm@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=will@kernel.org \
    --cc=xukuohai@huaweicloud.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).