Merge tag 'linux_kselftest-fixes-6.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
Pull kselftest fixes from Shuah Khan: "Fixes to build warnings in several tests and fixes to ftrace tests" * tag 'linux_kselftest-fixes-6.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests/futex: don't pass a const char* to asprintf(3) selftests/futex: don't redefine .PHONY targets (all, clean) selftests/tracing: Fix event filter test to retry up to 10 times selftests/futex: pass _GNU_SOURCE without a value to the compiler selftests/overlayfs: Fix build error on ppc64 selftests/openat2: Fix build warnings on ppc64 selftests: cachestat: Fix build warnings on ppc64 tracing/selftests: Fix kprobe event name test for .isra. functions selftests/ftrace: Update required config selftests/ftrace: Fix to check required event file kselftest/alsa: Ensure _GNU_SOURCE is defined
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
#
|
#
|
||||||
|
|
||||||
CFLAGS += $(shell pkg-config --cflags alsa)
|
CFLAGS += $(shell pkg-config --cflags alsa) $(KHDR_INCLUDES)
|
||||||
LDLIBS += $(shell pkg-config --libs alsa)
|
LDLIBS += $(shell pkg-config --libs alsa)
|
||||||
ifeq ($(LDLIBS),)
|
ifeq ($(LDLIBS),)
|
||||||
LDLIBS += -lasound
|
LDLIBS += -lasound
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
|
#define __SANE_USERSPACE_TYPES__ // Use ll64
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
|
#define __SANE_USERSPACE_TYPES__ // Use ll64
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -1,16 +1,28 @@
|
|||||||
CONFIG_KPROBES=y
|
CONFIG_BPF_SYSCALL=y
|
||||||
|
CONFIG_DEBUG_INFO_BTF=y
|
||||||
|
CONFIG_DEBUG_INFO_DWARF4=y
|
||||||
|
CONFIG_EPROBE_EVENTS=y
|
||||||
|
CONFIG_FPROBE=y
|
||||||
|
CONFIG_FPROBE_EVENTS=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
|
CONFIG_FTRACE_SYSCALLS=y
|
||||||
|
CONFIG_FUNCTION_GRAPH_RETVAL=y
|
||||||
CONFIG_FUNCTION_PROFILER=y
|
CONFIG_FUNCTION_PROFILER=y
|
||||||
CONFIG_TRACER_SNAPSHOT=y
|
|
||||||
CONFIG_STACK_TRACER=y
|
|
||||||
CONFIG_HIST_TRIGGERS=y
|
CONFIG_HIST_TRIGGERS=y
|
||||||
CONFIG_SCHED_TRACER=y
|
|
||||||
CONFIG_PREEMPT_TRACER=y
|
|
||||||
CONFIG_IRQSOFF_TRACER=y
|
CONFIG_IRQSOFF_TRACER=y
|
||||||
CONFIG_PREEMPTIRQ_DELAY_TEST=m
|
CONFIG_KALLSYMS_ALL=y
|
||||||
|
CONFIG_KPROBES=y
|
||||||
|
CONFIG_KPROBE_EVENTS=y
|
||||||
CONFIG_MODULES=y
|
CONFIG_MODULES=y
|
||||||
CONFIG_MODULE_UNLOAD=y
|
CONFIG_MODULE_UNLOAD=y
|
||||||
|
CONFIG_PREEMPTIRQ_DELAY_TEST=m
|
||||||
|
CONFIG_PREEMPT_TRACER=y
|
||||||
|
CONFIG_PROBE_EVENTS_BTF_ARGS=y
|
||||||
CONFIG_SAMPLES=y
|
CONFIG_SAMPLES=y
|
||||||
CONFIG_SAMPLE_FTRACE_DIRECT=m
|
CONFIG_SAMPLE_FTRACE_DIRECT=m
|
||||||
CONFIG_SAMPLE_TRACE_PRINTK=m
|
CONFIG_SAMPLE_TRACE_PRINTK=m
|
||||||
CONFIG_KALLSYMS_ALL=y
|
CONFIG_SCHED_TRACER=y
|
||||||
|
CONFIG_STACK_TRACER=y
|
||||||
|
CONFIG_TRACER_SNAPSHOT=y
|
||||||
|
CONFIG_UPROBES=y
|
||||||
|
CONFIG_UPROBE_EVENTS=y
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# description: Generic dynamic event - check if duplicate events are caught
|
# description: Generic dynamic event - check if duplicate events are caught
|
||||||
# requires: dynamic_events "e[:[<group>/][<event>]] <attached-group>.<attached-event> [<args>]":README
|
# requires: dynamic_events "e[:[<group>/][<event>]] <attached-group>.<attached-event> [<args>]":README events/syscalls/sys_enter_openat
|
||||||
|
|
||||||
echo 0 > events/enable
|
echo 0 > events/enable
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ fail() { #msg
|
|||||||
}
|
}
|
||||||
|
|
||||||
sample_events() {
|
sample_events() {
|
||||||
echo > trace
|
|
||||||
echo 1 > events/kmem/kmem_cache_free/enable
|
echo 1 > events/kmem/kmem_cache_free/enable
|
||||||
echo 1 > tracing_on
|
echo 1 > tracing_on
|
||||||
ls > /dev/null
|
ls > /dev/null
|
||||||
@ -22,6 +21,7 @@ echo 0 > tracing_on
|
|||||||
echo 0 > events/enable
|
echo 0 > events/enable
|
||||||
|
|
||||||
echo "Get the most frequently calling function"
|
echo "Get the most frequently calling function"
|
||||||
|
echo > trace
|
||||||
sample_events
|
sample_events
|
||||||
|
|
||||||
target_func=`cat trace | grep -o 'call_site=\([^+]*\)' | sed 's/call_site=//' | sort | uniq -c | sort | tail -n 1 | sed 's/^[ 0-9]*//'`
|
target_func=`cat trace | grep -o 'call_site=\([^+]*\)' | sed 's/call_site=//' | sort | uniq -c | sort | tail -n 1 | sed 's/^[ 0-9]*//'`
|
||||||
@ -32,7 +32,16 @@ echo > trace
|
|||||||
|
|
||||||
echo "Test event filter function name"
|
echo "Test event filter function name"
|
||||||
echo "call_site.function == $target_func" > events/kmem/kmem_cache_free/filter
|
echo "call_site.function == $target_func" > events/kmem/kmem_cache_free/filter
|
||||||
|
|
||||||
sample_events
|
sample_events
|
||||||
|
max_retry=10
|
||||||
|
while [ `grep kmem_cache_free trace| wc -l` -eq 0 ]; do
|
||||||
|
sample_events
|
||||||
|
max_retry=$((max_retry - 1))
|
||||||
|
if [ $max_retry -eq 0 ]; then
|
||||||
|
exit_fail
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l`
|
hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l`
|
||||||
misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l`
|
misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l`
|
||||||
@ -49,7 +58,16 @@ address=`grep " ${target_func}\$" /proc/kallsyms | cut -d' ' -f1`
|
|||||||
|
|
||||||
echo "Test event filter function address"
|
echo "Test event filter function address"
|
||||||
echo "call_site.function == 0x$address" > events/kmem/kmem_cache_free/filter
|
echo "call_site.function == 0x$address" > events/kmem/kmem_cache_free/filter
|
||||||
|
echo > trace
|
||||||
sample_events
|
sample_events
|
||||||
|
max_retry=10
|
||||||
|
while [ `grep kmem_cache_free trace| wc -l` -eq 0 ]; do
|
||||||
|
sample_events
|
||||||
|
max_retry=$((max_retry - 1))
|
||||||
|
if [ $max_retry -eq 0 ]; then
|
||||||
|
exit_fail
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l`
|
hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l`
|
||||||
misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l`
|
misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l`
|
||||||
|
@ -30,7 +30,8 @@ find_dot_func() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
grep " [tT] .*\.isra\..*" /proc/kallsyms | cut -f 3 -d " " | while read f; do
|
grep " [tT] .*\.isra\..*" /proc/kallsyms | cut -f 3 -d " " | while read f; do
|
||||||
if grep -s $f available_filter_functions; then
|
cnt=`grep -s $f available_filter_functions | wc -l`;
|
||||||
|
if [ $cnt -eq 1 ]; then
|
||||||
echo $f
|
echo $f
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
@ -3,8 +3,6 @@ SUBDIRS := functional
|
|||||||
|
|
||||||
TEST_PROGS := run.sh
|
TEST_PROGS := run.sh
|
||||||
|
|
||||||
.PHONY: all clean
|
|
||||||
|
|
||||||
include ../lib.mk
|
include ../lib.mk
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
INCLUDES := -I../include -I../../ $(KHDR_INCLUDES)
|
INCLUDES := -I../include -I../../ $(KHDR_INCLUDES)
|
||||||
CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE -pthread $(INCLUDES) $(KHDR_INCLUDES)
|
CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE= -pthread $(INCLUDES) $(KHDR_INCLUDES)
|
||||||
LDLIBS := -lpthread -lrt
|
LDLIBS := -lpthread -lrt
|
||||||
|
|
||||||
LOCAL_HDRS := \
|
LOCAL_HDRS := \
|
||||||
|
@ -360,7 +360,7 @@ out:
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
const char *test_name;
|
char *test_name;
|
||||||
int c, ret;
|
int c, ret;
|
||||||
|
|
||||||
while ((c = getopt(argc, argv, "bchlot:v:")) != -1) {
|
while ((c = getopt(argc, argv, "bchlot:v:")) != -1) {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
|
#define __SANE_USERSPACE_TYPES__ // Use ll64
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sched.h>
|
#include <sched.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
Reference in New Issue
Block a user