-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bpf, arm64: Support Exceptions #6373
Conversation
Upstream branch: 994ff2f |
f33ab25
to
fd18cf0
Compare
Upstream branch: 1581e51 |
9d0e8f9
to
6e16bec
Compare
fd18cf0
to
86aeea7
Compare
Upstream branch: 943b043 |
6e16bec
to
fcb8425
Compare
86aeea7
to
be96a3f
Compare
Upstream branch: 6fb3f72 |
fcb8425
to
c6dda2f
Compare
be96a3f
to
3f4caf3
Compare
Upstream branch: a68b50f |
c6dda2f
to
a68d7c3
Compare
3f4caf3
to
4aea8c9
Compare
Upstream branch: 2a79690 |
a68d7c3
to
477fd6b
Compare
4aea8c9
to
03773fa
Compare
Upstream branch: df9705e |
477fd6b
to
6527f35
Compare
03773fa
to
bd1f983
Compare
Upstream branch: 7e42863 |
6527f35
to
829c6f3
Compare
bd1f983
to
f07326e
Compare
Upstream branch: 169e650 |
e781513
to
2ae0ddb
Compare
be0c32f
to
22dbecf
Compare
Upstream branch: 1159d27 |
2ae0ddb
to
4e3ba2e
Compare
22dbecf
to
f9f5b5d
Compare
Upstream branch: 1159d27 |
4e3ba2e
to
1988451
Compare
f9f5b5d
to
ab01831
Compare
Upstream branch: 1159d27 |
1988451
to
7791020
Compare
ab01831
to
e189d8e
Compare
This will be used by bpf_throw() to unwind till the program marked as exception boundary and run the callback with the stack of the main program. This is required for supporting BPF exceptions on ARM64. Signed-off-by: Puranjay Mohan <puranjay12@gmail.com>
The prologue generation code has been modified to make the callback program use the stack of the program marked as exception boundary where callee-saved registers are already pushed. As the bpf_throw function never returns, if it clobbers any callee-saved registers, they would remain clobbered. So, the prologue of the exception-boundary program is modified to push R23 and R24 as well, which the callback will then recover in its epilogue. The Procedure Call Standard for the Arm 64-bit Architecture[1] states that registers r19 to r28 should be saved by the callee. BPF programs on ARM64 already save all callee-saved registers except r23 and r24. This patch adds an instruction in prologue of the program to save these two registers and another instruction in the epilogue to recover them. These extra instructions are only added if bpf_throw() is used. Otherwise the emitted prologue/epilogue remains unchanged. [1] https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst Signed-off-by: Puranjay Mohan <puranjay12@gmail.com>
Upstream branch: a4561f5 |
7791020
to
82e92a3
Compare
At least one diff in series https://patchwork.kernel.org/project/netdevbpf/list/?series=784973 expired. Closing PR. |
Pull request for series with
subject: bpf, arm64: Support Exceptions
version: 3
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=822107