Chenghao Duan 45345ec409 LoongArch: BPF: Add dynamic code modification support
This commit adds support for BPF dynamic code modification on the
LoongArch architecture:
1. Add bpf_arch_text_copy() for instruction block copying.
2. Add bpf_arch_text_poke() for runtime instruction patching.
3. Add bpf_arch_text_invalidate() for code invalidation.

On LoongArch, since symbol addresses in the direct mapping region can't
be reached via relative jump instructions from the paged mapping region,
we use the move_imm+jirl instruction pair as absolute jump instructions.
These require 2-5 instructions, so we reserve 5 NOP instructions in the
program as placeholders for function jumps.

The larch_insn_text_copy() function is solely used for BPF. And the use
of larch_insn_text_copy() requires PAGE_SIZE alignment. Currently, only
the size of the BPF trampoline is page-aligned.

Co-developed-by: George Guo <guodongtai@kylinos.cn>
Signed-off-by: George Guo <guodongtai@kylinos.cn>
Signed-off-by: Chenghao Duan <duanchenghao@kylinos.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: maoxiaochuan <maoxiaochuan@loongson.cn>
2025-08-19 11:29:18 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 16:03:32 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 16:03:32 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00
2025-02-13 14:11:16 +08:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.
S
Description
No description provided
Readme
260 MiB
Languages
C 97.6%
Assembly 1%
Shell 0.5%
Python 0.3%
Makefile 0.3%