summaryrefslogtreecommitdiff
path: root/include/linux/workqueue_api.h
diff options
context:
space:
mode:
authorXu Kuohai <xukuohai@huawei.com>2022-03-21 18:28:49 +0300
committerDaniel Borkmann <daniel@iogearbox.net>2022-04-01 01:27:34 +0300
commit7db6c0f1d8ee051e0a7d8c58c5982990e4491f39 (patch)
tree3af861aaa48c023084343617d8e0649755e44ec9 /include/linux/workqueue_api.h
parent30c90f6757a7b38bc95069725657a647873e2ab3 (diff)
downloadlinux-7db6c0f1d8ee051e0a7d8c58c5982990e4491f39.tar.xz
bpf, arm64: Optimize BPF store/load using arm64 str/ldr(immediate offset)
The current BPF store/load instruction is translated by the JIT into two instructions. The first instruction moves the immediate offset into a temporary register. The second instruction uses this temporary register to do the real store/load. In fact, arm64 supports addressing with immediate offsets. So This patch introduces optimization that uses arm64 str/ldr instruction with immediate offset when the offset fits. Example of generated instuction for r2 = *(u64 *)(r1 + 0): without optimization: mov x10, 0 ldr x1, [x0, x10] with optimization: ldr x1, [x0, 0] If the offset is negative, or is not aligned correctly, or exceeds max value, rollback to the use of temporary register. Signed-off-by: Xu Kuohai <xukuohai@huawei.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/bpf/20220321152852.2334294-3-xukuohai@huawei.com
Diffstat (limited to 'include/linux/workqueue_api.h')
0 files changed, 0 insertions, 0 deletions