Re: [PATCH 0/2] Add support to dump the kernel page tables
[email protected] Wed, 22 Jul 2026 02:54:10 +0000
| Newsgroups | dev.linux.lists.loongarch,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
2026年7月10日 20:52, "Huacai Chen" <[email protected] mailto:[email protected]?to=%22Huacai%20Chen%22%20%3Cchenhuacai%40kernel.org%3E > 写到: > > Hi, Haoran, > > On Tue, Jul 7, 2026 at 2:47 PM <[email protected]> wrote: > > > > > From: Haoran Jiang <[email protected]> > > > > Enforce the W^X principle on page tables, > > and also support the kernel page dump feature. > > > > The following tests were performed: > > > > kdb: > > echo kgdbts=V1 > /sys/module/kgdbts/parameters/kgdbts > > > > ebpf: > > ./test_progs -t struct_ops -d struct_ops_multi_pages > > ./test_progs -t fexit_stress > > ./test_progs -t module_fentry_shadow > > ./test_progs -t fentry_test/fentry > > ./test_progs -t fexit_test/fexit > > ./test_progs -t modify_return > > ./test_progs -t fexit_sleep > > ./test_progs -t test_overhead > > ./test_progs -t trampoline_count > > ./test_progs -t kprobe > > ./test_progs -t uprobe > > > > livepatch: > > insmod samples/livepatch/livepatch_sample.ko > > > > kprobe: > > insmod samples/kprobes/kprobe_example.ko > > insmod samples/kprobes/kretprobe_example.ko > > > > unxibench: > > before this patch: > > running 1 parallel copy of tests: 1492 > > running 128 parallel copies of tests: 8765 > > > > after this patch: > > running 1 parallel copy of tests: 1440 > > running 128 parallel copies of tests: 8749 > > > I hope you have verified ftrace, kprobes, jump label, kgdb, etc. on > modules, not only on the kernel itself. Otherwise the tests are not > enough. > jump label: Tested with the kernel test module at `/lib/test_static_keys.c`. The `static_branch_likely()` and `static_branch_unlikely()` functions were exercised in module context, and all test cases passed successfully. cd lib insmod test_static_key_base.ko insmod test_static_keys.ko kprobe: With ftrace disabled, used the kprobe sample module from `samples/kprobe/` in the kernel source to trace functions in a custom module. The tracing of functions within the module worked as expected. cd sample/kprobe insmod kprobe_example.ko symbol="test_print" insmod kretprobe_example.ko func="test_print" [ 798.077262] handler_pre: <test_print> p->addr = 0x000000007e1cc0d2, era = 0xffff800003474000, estat = 0xc0000 [ 798.087827] handler_post: <test_print> p->addr = 0x000000007e1cc0d2, estat = 0xc0000 [ 798.116541] test_print returned 39 and took 39280450 ns to execute ftrace: With ftrace and fprobe enabled, the following eBPF program was used to trace functions such as `bpf_testmod_fentry_test1()` in the `bpf_testmod.c` module. The underlying mechanism leverages ftrace capabilities, and all tests passed successfully. cd tools/testing/selftests/bpf ./test_progs -t kprobe_multi_testmod_test #172/1 kprobe_multi_testmod_test/testmod_attach_api_syms:OK #172/2 kprobe_multi_testmod_test/testmod_attach_api_addrs:OK #172 kprobe_multi_testmod_test:OK Summary: 1/2 PASSED, 0 SKIPPED, 0 FAILED kdb: With KDB enabled, I installed breakpoints on functions in the module and performed single-step execution tests via KDB. The tests passed successfully. During the testing, we observed that single-step debugging triggered an Oops error, but this issue is unrelated to the two patches mentioned above. [112]kdb> ss Entering kdb (current=0x900020009f520000, pid 10661) on processor 112 Oops: (null) due to oops @ 0x90000000005b57a4 I have submitted a fix patch for this issue. https://lore.kernel.org/loongarch/[email protected]/T/#u > @Tiezhu, you are familiar with all the above mechanisms, so please > help to review, and double check whether uprobes need to be modified. > > Huacai > > > > > Haoran Jiang (2): > > LoongArch: Enforce W^X for page-mapped virtual memory region > > LoongArch: Add support to dump the kernel page tables > > > > arch/loongarch/Kconfig | 2 + > > arch/loongarch/include/asm/pgtable-bits.h | 12 +- > > arch/loongarch/kernel/ftrace_dyn.c | 16 + > > arch/loongarch/kernel/inst.c | 25 +- > > arch/loongarch/kernel/jump_label.c | 3 + > > arch/loongarch/kernel/kgdb.c | 50 +++ > > arch/loongarch/kernel/kprobes.c | 4 +- > > arch/loongarch/mm/Makefile | 1 + > > arch/loongarch/mm/ptdump.c | 474 ++++++++++++++++++++++ > > 9 files changed, 575 insertions(+), 12 deletions(-) > > create mode 100644 arch/loongarch/mm/ptdump.c > > > > -- > > 2.43.0 > > >