'pci_endpoint_test' fails for architectures allowing less than 32 MSI
registers and that doesnt support MSI-X, avoid reporting false errors
because of out-of-range irqs.
e.g for an EP configured with 8 msi_interrupts and no msix we can have
./pci_endpoint_test -t MSI_TEST
# PASSED: 1 / 1 tests passed.
# 1 skipped test(s) detected. Consider enabling relevant config options to improve coverage.
# Totals: pass:0 fail:0 xfail:0 xpass:0 skip:1 error:0
instead of
# FAILED: 0 / 1 tests passed
# Totals: pass:0 fail:1 xfail:0 xpass:0 skip:0 error:0
An alternative could have been to implement VARIANTs so that the harness
runs only the supported tests, but that seems quite heavy considering the
huge number of possible interrupts.
Another alternative could also have been to use a new ioctl to get the
allocated number of irqs from the driver, but that doesn't seem to be
more efficient than just using -EINVAL when the
irq is out of range.
thank you for your feedback
Christian Bruel (3):
misc: pci_endpoint_test: Skip IRQ tests if irq is out of range
misc: pci_endpoint_test: Cleanup extra 0 initialization
selftests: pci_endpoint: Skip IRQ test if irq is out of range.
drivers/misc/pci_endpoint_test.c | 14 ++++++--------
.../selftests/pci_endpoint/pci_endpoint_test.c | 4 ++++
2 files changed, 10 insertions(+), 8 deletions(-)
--
2.34.1
On 32bit ARM systems gcc-12 will use 32bit timestamps while gcc-13 and
later will use 64bit timestamps. The problem is that SYS_futex will
continue pointing at the 32bit system call. This makes the futex_wait
test fail like this:
waiter failed errno 110
not ok 1 futex_wake private returned: 0 Success
waiter failed errno 110
not ok 2 futex_wake shared (page anon) returned: 0 Success
waiter failed errno 110
not ok 3 futex_wake shared (file backed) returned: 0 Success
Instead of compiling differently depending on the gcc version, use the
-D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 options to ensure that we are
building with 64bit timestamps. Then use ifdefs to make SYS_futex point
to the 64bit system call.
Signed-off-by: Dan Carpenter <dan.carpenter(a)linaro.org>
Tested-by: Anders Roxell <anders.roxell(a)linaro.org>
---
tools/testing/selftests/futex/functional/Makefile | 2 +-
tools/testing/selftests/futex/include/futextest.h | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/futex/functional/Makefile b/tools/testing/selftests/futex/functional/Makefile
index 8cfb87f7f7c5..ddfa61d857b9 100644
--- a/tools/testing/selftests/futex/functional/Makefile
+++ b/tools/testing/selftests/futex/functional/Makefile
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
INCLUDES := -I../include -I../../ $(KHDR_INCLUDES)
-CFLAGS := $(CFLAGS) -g -O2 -Wall -pthread $(INCLUDES) $(KHDR_INCLUDES)
+CFLAGS := $(CFLAGS) -g -O2 -Wall -pthread -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 $(INCLUDES) $(KHDR_INCLUDES)
LDLIBS := -lpthread -lrt -lnuma
LOCAL_HDRS := \
diff --git a/tools/testing/selftests/futex/include/futextest.h b/tools/testing/selftests/futex/include/futextest.h
index 7a5fd1d5355e..3d48e9789d9f 100644
--- a/tools/testing/selftests/futex/include/futextest.h
+++ b/tools/testing/selftests/futex/include/futextest.h
@@ -58,6 +58,17 @@ typedef volatile u_int32_t futex_t;
#define SYS_futex SYS_futex_time64
#endif
+/*
+ * On 32bit systems if we use "-D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64" or if
+ * we are using a newer compiler then the size of the timestamps will be 64bit,
+ * however, the SYS_futex will still point to the 32bit futex system call.
+ */
+#if __SIZEOF_POINTER__ == 4 && defined(SYS_futex_time64) && \
+ defined(_TIME_BITS) && _TIME_BITS == 64
+# undef SYS_futex
+# define SYS_futex SYS_futex_time64
+#endif
+
/**
* futex() - SYS_futex syscall wrapper
* @uaddr: address of first futex
--
2.47.2
Correct few spelling mistakes in selftest output messages to improve
readability
Signed-off-by: bhanuseshukumar <bhanuseshukumar(a)gmail.com>
---
This fix is part of kselftest pre-requisite task for kernel mentorship fall 2025.
--changes in v2 to v1
grammar fix : instead -> instead of
tools/testing/selftests/futex/functional/futex_priv_hash.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/futex/functional/futex_priv_hash.c b/tools/testing/selftests/futex/functional/futex_priv_hash.c
index aea001ac4946..8a5735391f2e 100644
--- a/tools/testing/selftests/futex/functional/futex_priv_hash.c
+++ b/tools/testing/selftests/futex/functional/futex_priv_hash.c
@@ -132,7 +132,7 @@ static void usage(char *prog)
{
printf("Usage: %s\n", prog);
printf(" -c Use color\n");
- printf(" -g Test global hash instead intead local immutable \n");
+ printf(" -g Test global hash instead of local immutable \n");
printf(" -h Display this help message\n");
printf(" -v L Verbosity level: %d=QUIET %d=CRITICAL %d=INFO\n",
VQUIET, VCRITICAL, VINFO);
@@ -267,7 +267,7 @@ int main(int argc, char *argv[])
join_max_threads();
ret = futex_hash_slots_get();
- ksft_test_result(ret == 2, "No more auto-resize after manaul setting, got %d\n",
+ ksft_test_result(ret == 2, "No more auto-resize after manual setting, got %d\n",
ret);
futex_hash_slots_set_must_fail(1 << 29);
--
2.34.1
Make ncdevmem clean up after itself. While at it make sure it sets
HDS threshold to 0 automatically.
v2: rework patch 4 into separate patches 4 and 5
v1: https://lore.kernel.org/20250822200052.1675613-1-kuba@kernel.org
Jakub Kicinski (5):
selftests: drv-net: ncdevmem: remove use of error()
selftests: drv-net: ncdevmem: save IDs of flow rules we added
selftests: drv-net: ncdevmem: restore old channel config
selftests: drv-net: ncdevmem: restore original HDS setting before
exiting
selftests: drv-net: ncdevmem: explicitly set HDS threshold to 0
.../selftests/drivers/net/hw/ncdevmem.c | 796 +++++++++++++-----
1 file changed, 588 insertions(+), 208 deletions(-)
--
2.51.0