mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
linux-kselftest-5.5-rc1-fixes
This kselftest fixes update for Linux 5.5-rc1 consists of several fixes to tests and framework. Masami Hiramatsu fixed several tests to build and run correctly on arm and other 32bit architectures. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEPZKym/RZuOCGeA/kCwJExA0NQxwFAl3YLAsACgkQCwJExA0N QxySoxAAwTJgNDhyxWGLFzlReuILBitWuTbEg1KzlOMjKWHnDBHhO9GYqxScKt5Y fgjjwukvQyai0PGMKd4U+AXtxeSB+Wr9kID7AXuTeDyBOK1iu9Nr++vSkAByJla4 qSVYf+Ja3Zu8kWs3S9rC1zs8dvMutA4FrjW7ig77quFxfSncwqIsTufo53gpBo5e tJ/VakouWiMV7oyDDPzqrs7Uz01CMmEsJXAkyHzb/nc+6NjJUpewRhZGkYXi89Le 2nBvEUUpdLMphds+KxO51+e+5pnU0ZD4PtjGcQ4/SABWWrCvNKJ9Tn398AdcndYX NGQe9eohcSB47YKA+sNagi+B4UBfgz6GtYEsdAy8oNxxEGTg8apKygvIlfjmp8in EMcFF/r6Wwxufx4F9uRFLn48t4d/SAYqCne/RaSwb+IkAe+wyFKeTNP7bwqAwakE Uvfpjoya0n5IXBKV9v6MrJJZKwKw6J9mu51wahmx2MQveW8p4nqnzy3xZ8AWOqb/ BezRWOgs85Yank8ovXfbAtxcdqKfw3BpDDO379OM7syvTMWNbLcfhpZ9wbyxB108 lcPsjrvu2SNzMs21vsyoDkTE/CPl0byr2v4SWOfUq1YTbsxVIveP4qcy9B12C3aR m7vRGLG2HwMrlVZ1mvXY2Tz0Jjhx7S+0eyYYzEBMHGT4zRqxjwU= =KGOl -----END PGP SIGNATURE----- Merge tag 'linux-kselftest-5.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull kselftest fixes from Shuah Khan: "This consists of several fixes to tests and framework. Masami Hiramatsu fixed several tests to build and run correctly on arm and other 32bit architectures" * tag 'linux-kselftest-5.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests: sync: Fix cast warnings on arm selftests: net: Fix printf format warnings on arm selftests: net: Use size_t and ssize_t for counting file size selftests: vm: Build/Run 64bit tests only on 64bit arch selftests: proc: Make va_max 1MB kselftest: Fix NULL INSTALL_PATH for TARGETS runlist selftests: Move kselftest_module.sh into kselftest/ selftests: gen_kselftest_tar.sh: Do not clobber kselftest/ selftests: breakpoints: Fix a typo of function name selftests: Fix O= and KBUILD_OUTPUT handling for relative paths
This commit is contained in:
commit
db7d275415
@ -86,10 +86,10 @@ override LDFLAGS =
|
||||
endif
|
||||
|
||||
ifneq ($(O),)
|
||||
BUILD := $(O)
|
||||
BUILD := $(abs_objtree)
|
||||
else
|
||||
ifneq ($(KBUILD_OUTPUT),)
|
||||
BUILD := $(KBUILD_OUTPUT)/kselftest
|
||||
BUILD := $(abs_objtree)/kselftest
|
||||
else
|
||||
BUILD := $(shell pwd)
|
||||
DEFAULT_INSTALL_HDR_PATH := 1
|
||||
@ -102,6 +102,7 @@ include $(top_srcdir)/scripts/subarch.include
|
||||
ARCH ?= $(SUBARCH)
|
||||
export KSFT_KHDR_INSTALL_DONE := 1
|
||||
export BUILD
|
||||
#$(info abd_objtree = $(abs_objtree) BUILD = $(BUILD))
|
||||
|
||||
# build and run gpio when output directory is the src dir.
|
||||
# gpio has dependency on tools/gpio and builds tools/gpio
|
||||
@ -190,6 +191,7 @@ install: all
|
||||
ifdef INSTALL_PATH
|
||||
@# Ask all targets to install their files
|
||||
mkdir -p $(INSTALL_PATH)/kselftest
|
||||
install -m 744 kselftest/module.sh $(INSTALL_PATH)/kselftest/
|
||||
install -m 744 kselftest/runner.sh $(INSTALL_PATH)/kselftest/
|
||||
install -m 744 kselftest/prefix.pl $(INSTALL_PATH)/kselftest/
|
||||
@for TARGET in $(TARGETS); do \
|
||||
@ -213,7 +215,7 @@ ifdef INSTALL_PATH
|
||||
@# included in the generated runlist.
|
||||
for TARGET in $(TARGETS); do \
|
||||
BUILD_TARGET=$$BUILD/$$TARGET; \
|
||||
[ ! -d $$INSTALL_PATH/$$TARGET ] && echo "Skipping non-existent dir: $$TARGET" && continue; \
|
||||
[ ! -d $(INSTALL_PATH)/$$TARGET ] && echo "Skipping non-existent dir: $$TARGET" && continue; \
|
||||
echo "[ -w /dev/kmsg ] && echo \"kselftest: Running tests in $$TARGET\" >> /dev/kmsg" >> $(ALL_SCRIPT); \
|
||||
echo "cd $$TARGET" >> $(ALL_SCRIPT); \
|
||||
echo -n "run_many" >> $(ALL_SCRIPT); \
|
||||
|
@ -109,7 +109,7 @@ static bool set_watchpoint(pid_t pid, int size, int wp)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool arun_test(int wr_size, int wp_size, int wr, int wp)
|
||||
static bool run_test(int wr_size, int wp_size, int wr, int wp)
|
||||
{
|
||||
int status;
|
||||
siginfo_t siginfo;
|
||||
|
@ -38,16 +38,21 @@ main()
|
||||
esac
|
||||
fi
|
||||
|
||||
install_dir=./kselftest
|
||||
# Create working directory.
|
||||
dest=`pwd`
|
||||
install_work="$dest"/kselftest_install
|
||||
install_name=kselftest
|
||||
install_dir="$install_work"/"$install_name"
|
||||
mkdir -p "$install_dir"
|
||||
|
||||
# Run install using INSTALL_KSFT_PATH override to generate install
|
||||
# directory
|
||||
./kselftest_install.sh
|
||||
tar $copts kselftest${ext} $install_dir
|
||||
echo "Kselftest archive kselftest${ext} created!"
|
||||
# Run install using INSTALL_KSFT_PATH override to generate install
|
||||
# directory
|
||||
./kselftest_install.sh "$install_dir"
|
||||
(cd "$install_work"; tar $copts "$dest"/kselftest${ext} $install_name)
|
||||
echo "Kselftest archive kselftest${ext} created!"
|
||||
|
||||
# clean up install directory
|
||||
rm -rf kselftest
|
||||
# clean up top-level install work directory
|
||||
rm -rf "$install_work"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
@ -6,30 +6,30 @@
|
||||
# Author: Shuah Khan <shuahkh@osg.samsung.com>
|
||||
# Copyright (C) 2015 Samsung Electronics Co., Ltd.
|
||||
|
||||
install_loc=`pwd`
|
||||
|
||||
main()
|
||||
{
|
||||
if [ $(basename $install_loc) != "selftests" ]; then
|
||||
base_dir=`pwd`
|
||||
install_dir="$base_dir"/kselftest_install
|
||||
|
||||
# Make sure we're in the selftests top-level directory.
|
||||
if [ $(basename "$base_dir") != "selftests" ]; then
|
||||
echo "$0: Please run it in selftests directory ..."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# Only allow installation into an existing location.
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "$0: Installing in default location - $install_loc ..."
|
||||
echo "$0: Installing in default location - $install_dir ..."
|
||||
elif [ ! -d "$1" ]; then
|
||||
echo "$0: $1 doesn't exist!!"
|
||||
exit 1;
|
||||
else
|
||||
install_loc=$1
|
||||
echo "$0: Installing in specified location - $install_loc ..."
|
||||
install_dir="$1"
|
||||
echo "$0: Installing in specified location - $install_dir ..."
|
||||
fi
|
||||
|
||||
install_dir=$install_loc/kselftest_install
|
||||
|
||||
# Create install directory
|
||||
mkdir -p $install_dir
|
||||
# Build tests
|
||||
KSFT_INSTALL_PATH=$install_dir make install
|
||||
# Build tests
|
||||
KSFT_INSTALL_PATH="$install_dir" make install
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
@ -1,3 +1,3 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
$(dirname $0)/../kselftest_module.sh "bitmap" test_bitmap
|
||||
$(dirname $0)/../kselftest/module.sh "bitmap" test_bitmap
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Checks fast/slow prime_number generation for inconsistencies
|
||||
$(dirname $0)/../kselftest_module.sh "prime numbers" prime_numbers selftest=65536
|
||||
$(dirname $0)/../kselftest/module.sh "prime numbers" prime_numbers selftest=65536
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Tests the printf infrastructure using test_printf kernel module.
|
||||
$(dirname $0)/../kselftest_module.sh "printf" test_printf
|
||||
$(dirname $0)/../kselftest/module.sh "printf" test_printf
|
||||
|
@ -1,3 +1,3 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
$(dirname $0)/../kselftest_module.sh "strscpy*" test_strscpy
|
||||
$(dirname $0)/../kselftest/module.sh "strscpy*" test_strscpy
|
||||
|
@ -105,8 +105,8 @@ static void do_recv_one(int fdr, struct timed_send *ts)
|
||||
tstop = (gettime_ns() - glob_tstart) / 1000;
|
||||
texpect = ts->delay_us >= 0 ? ts->delay_us : 0;
|
||||
|
||||
fprintf(stderr, "payload:%c delay:%ld expected:%ld (us)\n",
|
||||
rbuf[0], tstop, texpect);
|
||||
fprintf(stderr, "payload:%c delay:%lld expected:%lld (us)\n",
|
||||
rbuf[0], (long long)tstop, (long long)texpect);
|
||||
|
||||
if (rbuf[0] != ts->data)
|
||||
error(1, 0, "payload mismatch. expected %c", ts->data);
|
||||
|
@ -71,7 +71,7 @@
|
||||
#define MSG_ZEROCOPY 0x4000000
|
||||
#endif
|
||||
|
||||
#define FILE_SZ (1UL << 35)
|
||||
#define FILE_SZ (1ULL << 35)
|
||||
static int cfg_family = AF_INET6;
|
||||
static socklen_t cfg_alen = sizeof(struct sockaddr_in6);
|
||||
static int cfg_port = 8787;
|
||||
@ -155,7 +155,7 @@ void *child_thread(void *arg)
|
||||
socklen_t zc_len = sizeof(zc);
|
||||
int res;
|
||||
|
||||
zc.address = (__u64)addr;
|
||||
zc.address = (__u64)((unsigned long)addr);
|
||||
zc.length = chunk_size;
|
||||
zc.recv_skip_hint = 0;
|
||||
res = getsockopt(fd, IPPROTO_TCP, TCP_ZEROCOPY_RECEIVE,
|
||||
@ -302,7 +302,7 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
struct sockaddr_storage listenaddr, addr;
|
||||
unsigned int max_pacing_rate = 0;
|
||||
unsigned long total = 0;
|
||||
size_t total = 0;
|
||||
char *host = NULL;
|
||||
int fd, c, on = 1;
|
||||
char *buffer;
|
||||
@ -417,7 +417,7 @@ int main(int argc, char *argv[])
|
||||
zflg = 0;
|
||||
}
|
||||
while (total < FILE_SZ) {
|
||||
long wr = FILE_SZ - total;
|
||||
ssize_t wr = FILE_SZ - total;
|
||||
|
||||
if (wr > chunk_size)
|
||||
wr = chunk_size;
|
||||
|
@ -440,7 +440,8 @@ static bool __send_one(int fd, struct msghdr *msg, int flags)
|
||||
if (ret == -1)
|
||||
error(1, errno, "sendmsg");
|
||||
if (ret != msg->msg_iov->iov_len)
|
||||
error(1, 0, "sendto: %d != %lu", ret, msg->msg_iov->iov_len);
|
||||
error(1, 0, "sendto: %d != %llu", ret,
|
||||
(unsigned long long)msg->msg_iov->iov_len);
|
||||
if (msg->msg_flags)
|
||||
error(1, 0, "sendmsg: return flags 0x%x\n", msg->msg_flags);
|
||||
|
||||
|
@ -405,7 +405,8 @@ static int send_udp_segment(int fd, char *data)
|
||||
if (ret == -1)
|
||||
error(1, errno, "sendmsg");
|
||||
if (ret != iov.iov_len)
|
||||
error(1, 0, "sendmsg: %u != %lu\n", ret, iov.iov_len);
|
||||
error(1, 0, "sendmsg: %u != %llu\n", ret,
|
||||
(unsigned long long)iov.iov_len);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -47,7 +47,11 @@ static void fail(const char *fmt, unsigned long a, unsigned long b)
|
||||
int main(void)
|
||||
{
|
||||
const int PAGE_SIZE = sysconf(_SC_PAGESIZE);
|
||||
const unsigned long va_max = 1UL << 32;
|
||||
/*
|
||||
* va_max must be enough bigger than vm.mmap_min_addr, which is
|
||||
* 64KB/32KB by default. (depends on CONFIG_LSM_MMAP_MIN_ADDR)
|
||||
*/
|
||||
const unsigned long va_max = 1UL << 20;
|
||||
unsigned long va;
|
||||
void *p;
|
||||
int fd;
|
||||
|
@ -109,7 +109,7 @@ static struct sync_file_info *sync_file_info(int fd)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
info->sync_fence_info = (uint64_t)fence_info;
|
||||
info->sync_fence_info = (uint64_t)(unsigned long)fence_info;
|
||||
|
||||
err = ioctl(fd, SYNC_IOC_FILE_INFO, info);
|
||||
if (err < 0) {
|
||||
@ -124,7 +124,7 @@ static struct sync_file_info *sync_file_info(int fd)
|
||||
|
||||
static void sync_file_info_free(struct sync_file_info *info)
|
||||
{
|
||||
free((void *)info->sync_fence_info);
|
||||
free((void *)(unsigned long)info->sync_fence_info);
|
||||
free(info);
|
||||
}
|
||||
|
||||
@ -152,7 +152,7 @@ int sync_fence_count_with_status(int fd, int status)
|
||||
if (!info)
|
||||
return -1;
|
||||
|
||||
fence_info = (struct sync_fence_info *)info->sync_fence_info;
|
||||
fence_info = (struct sync_fence_info *)(unsigned long)info->sync_fence_info;
|
||||
for (i = 0 ; i < info->num_fences ; i++) {
|
||||
if (fence_info[i].status == status)
|
||||
count++;
|
||||
|
@ -1,5 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Makefile for vm selftests
|
||||
uname_M := $(shell uname -m 2>/dev/null || echo not)
|
||||
ARCH ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/')
|
||||
|
||||
CFLAGS = -Wall -I ../../../../usr/include $(EXTRA_CFLAGS)
|
||||
LDLIBS = -lrt
|
||||
@ -16,8 +18,11 @@ TEST_GEN_FILES += on-fault-limit
|
||||
TEST_GEN_FILES += thuge-gen
|
||||
TEST_GEN_FILES += transhuge-stress
|
||||
TEST_GEN_FILES += userfaultfd
|
||||
|
||||
ifneq (,$(filter $(ARCH),arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64))
|
||||
TEST_GEN_FILES += va_128TBswitch
|
||||
TEST_GEN_FILES += virtual_address_range
|
||||
endif
|
||||
|
||||
TEST_PROGS := run_vmtests
|
||||
|
||||
|
@ -58,6 +58,14 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#filter 64bit architectures
|
||||
ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64"
|
||||
if [ -z $ARCH ]; then
|
||||
ARCH=`uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/'`
|
||||
fi
|
||||
VADDR64=0
|
||||
echo "$ARCH64STR" | grep $ARCH && VADDR64=1
|
||||
|
||||
mkdir $mnt
|
||||
mount -t hugetlbfs none $mnt
|
||||
|
||||
@ -189,6 +197,7 @@ else
|
||||
echo "[PASS]"
|
||||
fi
|
||||
|
||||
if [ $VADDR64 -ne 0 ]; then
|
||||
echo "-----------------------------"
|
||||
echo "running virtual_address_range"
|
||||
echo "-----------------------------"
|
||||
@ -210,6 +219,7 @@ if [ $? -ne 0 ]; then
|
||||
else
|
||||
echo "[PASS]"
|
||||
fi
|
||||
fi # VADDR64
|
||||
|
||||
echo "------------------------------------"
|
||||
echo "running vmalloc stability smoke test"
|
||||
|
Loading…
Reference in New Issue
Block a user