|
6 | 6 |
|
7 | 7 | MAX_RETRIES=600
|
8 | 8 | RETRY_INTERVAL=".1" # seconds
|
9 |
| -SYSFS_KLP_DIR="/sys/kernel/livepatch" |
| 9 | +SYSFS_KERNEL_DIR="/sys/kernel" |
| 10 | +SYSFS_KLP_DIR="$SYSFS_KERNEL_DIR/livepatch" |
| 11 | +SYSFS_DEBUG_DIR="$SYSFS_KERNEL_DIR/debug" |
| 12 | +SYSFS_KPROBES_DIR="$SYSFS_DEBUG_DIR/kprobes" |
10 | 13 |
|
11 | 14 | # Kselftest framework requirement - SKIP code is 4
|
12 | 15 | ksft_skip=4
|
@@ -55,22 +58,26 @@ function die() {
|
55 | 58 | }
|
56 | 59 |
|
57 | 60 | function push_config() {
|
58 |
| - DYNAMIC_DEBUG=$(grep '^kernel/livepatch' /sys/kernel/debug/dynamic_debug/control | \ |
| 61 | + DYNAMIC_DEBUG=$(grep '^kernel/livepatch' "$SYSFS_DEBUG_DIR/dynamic_debug/control" | \ |
59 | 62 | awk -F'[: ]' '{print "file " $1 " line " $2 " " $4}')
|
60 | 63 | FTRACE_ENABLED=$(sysctl --values kernel.ftrace_enabled)
|
| 64 | + KPROBE_ENABLED=$(cat "$SYSFS_KPROBES_DIR/enabled") |
61 | 65 | }
|
62 | 66 |
|
63 | 67 | function pop_config() {
|
64 | 68 | if [[ -n "$DYNAMIC_DEBUG" ]]; then
|
65 |
| - echo -n "$DYNAMIC_DEBUG" > /sys/kernel/debug/dynamic_debug/control |
| 69 | + echo -n "$DYNAMIC_DEBUG" > "$SYSFS_DEBUG_DIR/dynamic_debug/control" |
66 | 70 | fi
|
67 | 71 | if [[ -n "$FTRACE_ENABLED" ]]; then
|
68 | 72 | sysctl kernel.ftrace_enabled="$FTRACE_ENABLED" &> /dev/null
|
69 | 73 | fi
|
| 74 | + if [[ -n "$KPROBE_ENABLED" ]]; then |
| 75 | + echo "$KPROBE_ENABLED" > "$SYSFS_KPROBES_DIR/enabled" |
| 76 | + fi |
70 | 77 | }
|
71 | 78 |
|
72 | 79 | function set_dynamic_debug() {
|
73 |
| - cat <<-EOF > /sys/kernel/debug/dynamic_debug/control |
| 80 | + cat <<-EOF > "$SYSFS_DEBUG_DIR/dynamic_debug/control" |
74 | 81 | file kernel/livepatch/* +p
|
75 | 82 | func klp_try_switch_task -p
|
76 | 83 | EOF
|
|
0 commit comments