[PATCH v3 0/3] ftrace: Introduce PERMANENT ftrace_ops flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Livepatch uses ftrace for redirection to new patched functions. It means
that if ftrace is disabled, all live patched functions are disabled as
well. Toggling global 'ftrace_enabled' sysctl thus affect it directly.
It is not a problem per se, because only administrator can set sysctl
values, but it still may be surprising.

Introduce PERMANENT ftrace_ops flag to amend this. If the
FTRACE_OPS_FL_PERMANENT is set on any ftrace ops, the tracing cannot be
disabled by disabling ftrace_enabled. Equally, a callback with the flag
set cannot be registered if ftrace_enabled is disabled.

v2->v3:
- ftrace_enabled explicitly set to true
- selftest from Joe Lawrence (I just split it to two patches)
- typo fix

v1->v2:
- different logic, proposed by Joe Lawrence

Joe Lawrence (2):
  selftests/livepatch: Make dynamic debug setup and restore generic
  selftests/livepatch: Test interaction with ftrace_enabled

Miroslav Benes (1):
  ftrace: Introduce PERMANENT ftrace_ops flag

 Documentation/trace/ftrace-uses.rst           |  8 +++
 Documentation/trace/ftrace.rst                |  4 +-
 include/linux/ftrace.h                        |  3 +
 kernel/livepatch/patch.c                      |  3 +-
 kernel/trace/ftrace.c                         | 23 ++++++-
 tools/testing/selftests/livepatch/Makefile    |  3 +-
 .../testing/selftests/livepatch/functions.sh  | 34 +++++++---
 .../selftests/livepatch/test-callbacks.sh     |  2 +-
 .../selftests/livepatch/test-ftrace.sh        | 65 +++++++++++++++++++
 .../selftests/livepatch/test-livepatch.sh     |  2 +-
 .../selftests/livepatch/test-shadow-vars.sh   |  2 +-
 11 files changed, 132 insertions(+), 17 deletions(-)
 create mode 100755 tools/testing/selftests/livepatch/test-ftrace.sh

-- 
2.23.0




[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux