Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Overlapping changes in selftests Makefile. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -1139,7 +1139,7 @@ static void test_stacktrace_build_id(void)
|
||||
|
||||
assert(system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null")
|
||||
== 0);
|
||||
assert(system("./urandom_read if=/dev/urandom of=/dev/zero count=4 2> /dev/null") == 0);
|
||||
assert(system("./urandom_read") == 0);
|
||||
/* disable stack trace collection */
|
||||
key = 0;
|
||||
val = 1;
|
||||
@@ -1189,7 +1189,7 @@ static void test_stacktrace_build_id(void)
|
||||
} while (bpf_map_get_next_key(stackmap_fd, &previous_key, &key) == 0);
|
||||
|
||||
CHECK(build_id_matches < 1, "build id match",
|
||||
"Didn't find expected build ID from the map");
|
||||
"Didn't find expected build ID from the map\n");
|
||||
|
||||
disable_pmu:
|
||||
ioctl(pmu_fd, PERF_EVENT_IOC_DISABLE);
|
||||
|
@@ -4,6 +4,7 @@
|
||||
all:
|
||||
|
||||
TEST_PROGS := fw_run_tests.sh
|
||||
TEST_FILES := fw_fallback.sh fw_filesystem.sh fw_lib.sh
|
||||
|
||||
include ../lib.mk
|
||||
|
||||
|
@@ -154,11 +154,13 @@ test_finish()
|
||||
if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
|
||||
echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
|
||||
fi
|
||||
if [ "$OLD_FWPATH" = "" ]; then
|
||||
OLD_FWPATH=" "
|
||||
fi
|
||||
if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then
|
||||
echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
|
||||
if [ "$OLD_FWPATH" = "" ]; then
|
||||
# A zero-length write won't work; write a null byte
|
||||
printf '\000' >/sys/module/firmware_class/parameters/path
|
||||
else
|
||||
echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
|
||||
fi
|
||||
fi
|
||||
if [ -f $FW ]; then
|
||||
rm -f "$FW"
|
||||
|
@@ -66,5 +66,5 @@ if [ -f $FW_FORCE_SYSFS_FALLBACK ]; then
|
||||
run_test_config_0003
|
||||
else
|
||||
echo "Running basic kernel configuration, working with your config"
|
||||
run_test
|
||||
run_tests
|
||||
fi
|
||||
|
@@ -29,7 +29,7 @@ do_reset
|
||||
|
||||
echo "Test extended error support"
|
||||
echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
|
||||
echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' >> events/sched/sched_wakeup/trigger &>/dev/null
|
||||
! echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' >> events/sched/sched_wakeup/trigger 2> /dev/null
|
||||
if ! grep -q "ERROR:" events/sched/sched_wakeup/hist; then
|
||||
fail "Failed to generate extended error in histogram"
|
||||
fi
|
||||
|
@@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
# description: event trigger - test multiple actions on hist trigger
|
||||
|
||||
|
||||
do_reset() {
|
||||
reset_trigger
|
||||
echo > set_event
|
||||
clear_trace
|
||||
}
|
||||
|
||||
fail() { #msg
|
||||
do_reset
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
if [ ! -f set_event ]; then
|
||||
echo "event tracing is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
if [ ! -f synthetic_events ]; then
|
||||
echo "synthetic event is not supported"
|
||||
exit_unsupported
|
||||
fi
|
||||
|
||||
clear_synthetic_events
|
||||
reset_tracer
|
||||
do_reset
|
||||
|
||||
echo "Test multiple actions on hist trigger"
|
||||
echo 'wakeup_latency u64 lat; pid_t pid' >> synthetic_events
|
||||
TRIGGER1=events/sched/sched_wakeup/trigger
|
||||
TRIGGER2=events/sched/sched_switch/trigger
|
||||
|
||||
echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="cyclictest"' > $TRIGGER1
|
||||
echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0 if next_comm=="cyclictest"' >> $TRIGGER2
|
||||
echo 'hist:keys=next_pid:onmatch(sched.sched_wakeup).wakeup_latency(sched.sched_switch.$wakeup_lat,next_pid) if next_comm=="cyclictest"' >> $TRIGGER2
|
||||
echo 'hist:keys=next_pid:onmatch(sched.sched_wakeup).wakeup_latency(sched.sched_switch.$wakeup_lat,prev_pid) if next_comm=="cyclictest"' >> $TRIGGER2
|
||||
echo 'hist:keys=next_pid if next_comm=="cyclictest"' >> $TRIGGER2
|
||||
|
||||
do_reset
|
||||
|
||||
exit 0
|
@@ -20,10 +20,10 @@ all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES)
|
||||
|
||||
.ONESHELL:
|
||||
define RUN_TESTS
|
||||
@export KSFT_TAP_LEVEL=`echo 1`;
|
||||
@test_num=`echo 0`;
|
||||
@echo "TAP version 13";
|
||||
@for TEST in $(1); do \
|
||||
@export KSFT_TAP_LEVEL=`echo 1`; \
|
||||
test_num=`echo 0`; \
|
||||
echo "TAP version 13"; \
|
||||
for TEST in $(1); do \
|
||||
BASENAME_TEST=`basename $$TEST`; \
|
||||
test_num=`echo $$test_num+1 | bc`; \
|
||||
echo "selftests: $$BASENAME_TEST"; \
|
||||
|
@@ -7,6 +7,7 @@ CFLAGS += -I../../../../usr/include/
|
||||
TEST_PROGS := run_netsocktests run_afpackettests test_bpf.sh netdevice.sh rtnetlink.sh
|
||||
TEST_PROGS += fib_tests.sh fib-onlink-tests.sh in_netns.sh pmtu.sh udpgso.sh
|
||||
TEST_PROGS += udpgso_bench.sh
|
||||
TEST_GEN_PROGS_EXTENDED := in_netns.sh
|
||||
TEST_GEN_FILES = socket
|
||||
TEST_GEN_FILES += psock_fanout psock_tpacket msg_zerocopy
|
||||
TEST_GEN_FILES += tcp_mmap tcp_inq
|
||||
|
@@ -100,12 +100,19 @@ asm (
|
||||
" shl $32, %r8\n"
|
||||
" orq $0x7f7f7f7f, %r8\n"
|
||||
" movq %r8, %r9\n"
|
||||
" movq %r8, %r10\n"
|
||||
" movq %r8, %r11\n"
|
||||
" movq %r8, %r12\n"
|
||||
" movq %r8, %r13\n"
|
||||
" movq %r8, %r14\n"
|
||||
" movq %r8, %r15\n"
|
||||
" incq %r9\n"
|
||||
" movq %r9, %r10\n"
|
||||
" incq %r10\n"
|
||||
" movq %r10, %r11\n"
|
||||
" incq %r11\n"
|
||||
" movq %r11, %r12\n"
|
||||
" incq %r12\n"
|
||||
" movq %r12, %r13\n"
|
||||
" incq %r13\n"
|
||||
" movq %r13, %r14\n"
|
||||
" incq %r14\n"
|
||||
" movq %r14, %r15\n"
|
||||
" incq %r15\n"
|
||||
" ret\n"
|
||||
" .code32\n"
|
||||
" .popsection\n"
|
||||
@@ -128,12 +135,13 @@ int check_regs64(void)
|
||||
int err = 0;
|
||||
int num = 8;
|
||||
uint64_t *r64 = ®s64.r8;
|
||||
uint64_t expected = 0x7f7f7f7f7f7f7f7fULL;
|
||||
|
||||
if (!kernel_is_64bit)
|
||||
return 0;
|
||||
|
||||
do {
|
||||
if (*r64 == 0x7f7f7f7f7f7f7f7fULL)
|
||||
if (*r64 == expected++)
|
||||
continue; /* register did not change */
|
||||
if (syscall_addr != (long)&int80) {
|
||||
/*
|
||||
@@ -147,18 +155,17 @@ int check_regs64(void)
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
/* INT80 syscall entrypoint can be used by
|
||||
/*
|
||||
* INT80 syscall entrypoint can be used by
|
||||
* 64-bit programs too, unlike SYSCALL/SYSENTER.
|
||||
* Therefore it must preserve R12+
|
||||
* (they are callee-saved registers in 64-bit C ABI).
|
||||
*
|
||||
* This was probably historically not intended,
|
||||
* but R8..11 are clobbered (cleared to 0).
|
||||
* IOW: they are the only registers which aren't
|
||||
* preserved across INT80 syscall.
|
||||
* Starting in Linux 4.17 (and any kernel that
|
||||
* backports the change), R8..11 are preserved.
|
||||
* Historically (and probably unintentionally), they
|
||||
* were clobbered or zeroed.
|
||||
*/
|
||||
if (*r64 == 0 && num <= 11)
|
||||
continue;
|
||||
}
|
||||
printf("[FAIL]\tR%d has changed:%016llx\n", num, *r64);
|
||||
err++;
|
||||
|
Reference in New Issue
Block a user