[PATCH 0/1] Add support for HAVE_ARCH_JUMP_LABEL

Magnus Lindholm posted 1 patch 1 month, 1 week ago
arch/alpha/Kconfig                  |  1 +
arch/alpha/include/asm/jump_label.h | 66 +++++++++++++++++++++++
arch/alpha/kernel/Makefile          |  1 +
arch/alpha/kernel/jump_label.c      | 81 +++++++++++++++++++++++++++++
4 files changed, 149 insertions(+)
create mode 100644 arch/alpha/include/asm/jump_label.h
create mode 100644 arch/alpha/kernel/jump_label.c
[PATCH 0/1] Add support for HAVE_ARCH_JUMP_LABEL
Posted by Magnus Lindholm 1 month, 1 week ago
This patch adds jump label (static key) support for Alpha.
Testing and verification were performed on an UP2000+ system.

Verification steps:

  - Confirmed __jump_table section is present at runtime via
    /proc/kallsyms and contains a non-zero number of entries.

  - Instrumented arch_jump_label_transform() to log patch
    operations and verified instruction sites toggle between:

        NOP (bis $31,$31,$31, 0x47ff041f)
        BR  (br $31,target)

  - Added temporary instrumentation in
    arch_jump_label_transform() to log old/new instruction
    values at each patch site, and used a Python script to
    validate correct NOP/BR transitions and branch encoding,
    confirming functional runtime patching.

Instruction stream synchronization uses imb()/smp_imb() via
flush_icache_range(), and runtime behavior confirms correct
I-cache coherency.

The system remained stable throughout all testing.

Magnus Lindholm (1):
  alpha: Add support for HAVE_ARCH_JUMP_LABEL

 arch/alpha/Kconfig                  |  1 +
 arch/alpha/include/asm/jump_label.h | 66 +++++++++++++++++++++++
 arch/alpha/kernel/Makefile          |  1 +
 arch/alpha/kernel/jump_label.c      | 81 +++++++++++++++++++++++++++++
 4 files changed, 149 insertions(+)
 create mode 100644 arch/alpha/include/asm/jump_label.h
 create mode 100644 arch/alpha/kernel/jump_label.c

-- 
2.52.0