HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //lib/modules/5.15.0-79-generic/build/tools/testing/selftests/powerpc/mm/stress_code_patching.sh
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later

TIMEOUT=30

DEBUFS_DIR=`cat /proc/mounts | grep debugfs | awk '{print $2}'`
if [ ! -e "$DEBUFS_DIR" ]
then
	echo "debugfs not found, skipping" 1>&2
	exit 4
fi

if [ ! -e "$DEBUFS_DIR/tracing/current_tracer" ]
then
	echo "Tracing files not found, skipping" 1>&2
	exit 4
fi


echo "Testing for spurious faults when mapping kernel memory..."

if grep -q "FUNCTION TRACING IS CORRUPTED" "$DEBUFS_DIR/tracing/trace"
then
	echo "FAILED: Ftrace already dead. Probably due to a spurious fault" 1>&2
	exit 1
fi

dmesg -C
START_TIME=`date +%s`
END_TIME=`expr $START_TIME + $TIMEOUT`
while [ `date +%s` -lt $END_TIME ]
do
	echo function > $DEBUFS_DIR/tracing/current_tracer
	echo nop > $DEBUFS_DIR/tracing/current_tracer
	if dmesg | grep -q 'ftrace bug'
	then
		break
	fi
done

echo nop > $DEBUFS_DIR/tracing/current_tracer
if dmesg | grep -q 'ftrace bug'
then
	echo "FAILED: Mapping kernel memory causes spurious faults" 1>&2
	exit 1
else
	echo "OK: Mapping kernel memory does not cause spurious faults"
	exit 0
fi