[lkml]   [2013]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[PATCH v3 0/7] Optimize jump label implementation for ARM64
    From: Jiang Liu <>

    This patchset tries to optimize arch specfic jump label implementation
    for ARM64 by dynamic kernel text patching.

    To enable this feature, your toolchain must support "asm goto" extension
    and "%c" constraint extesion. Current GCC for AARCH64 doesn't support
    "%c", so you need a GCC patch similiar to this:

    It has been tested on ARM Fast mode and a real hardware platform.

    Any comments are welcomed!

    1) fix a bug in comparing signed and unsigned values
    2) detect big endian by checking __AARCH64EB__

    V1->V2: address review comments of V1
    1) refine comments
    2) add a new interface to always synchronize with stop_machine()
    when patching code
    3) handle endian issue when patching code

    Jiang Liu (7):
    arm64: introduce basic aarch64 instruction decoding helpers
    arm64: introduce interfaces to hotpatch kernel and module code
    arm64: move encode_insn_immediate() from module.c to insn.c
    arm64: introduce aarch64_insn_gen_{nop|branch_imm}() helper functions
    arm64, jump label: detect %c support for ARM64
    arm64, jump label: optimize jump label implementation
    jump_label: use defined macros instead of hard-coding for better

    arch/arm64/Kconfig | 1 +
    arch/arm64/include/asm/insn.h | 79 ++++++++++
    arch/arm64/include/asm/jump_label.h | 52 +++++++
    arch/arm64/kernel/Makefile | 3 +-
    arch/arm64/kernel/insn.c | 285 ++++++++++++++++++++++++++++++++++++
    arch/arm64/kernel/jump_label.c | 60 ++++++++
    arch/arm64/kernel/module.c | 151 ++++---------------
    include/linux/jump_label.h | 15 +-
    scripts/ | 2 +-
    9 files changed, 522 insertions(+), 126 deletions(-)
    create mode 100644 arch/arm64/include/asm/insn.h
    create mode 100644 arch/arm64/include/asm/jump_label.h
    create mode 100644 arch/arm64/kernel/insn.c
    create mode 100644 arch/arm64/kernel/jump_label.c


     \ /
      Last update: 2013-10-16 06:01    [W:0.025 / U:0.536 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site