[LTP] [PATCH] getcpu01: Reinstate node_id test
Richard Palethorpe
rpalethorpe@suse.com
Tue Dec 6 17:58:40 CET 2022
Presently the node_id is only checked on i386 and it is broken. The
sched_getcpu call was substituted for getcpu when
available. sched_getcpu does not have the node_id parameter and does
not even call SYS_getcpu if it can be completed by vDSO.
Also we can at least check the node_id on x86_64 as well.
Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com>
---
testcases/kernel/syscalls/getcpu/getcpu01.c | 22 +++++++++------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/testcases/kernel/syscalls/getcpu/getcpu01.c b/testcases/kernel/syscalls/getcpu/getcpu01.c
index fcc273e29..21c67f412 100644
--- a/testcases/kernel/syscalls/getcpu/getcpu01.c
+++ b/testcases/kernel/syscalls/getcpu/getcpu01.c
@@ -15,20 +15,16 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
+#include "tst_test.h"
#include "lapi/syscalls.h"
#include "lapi/cpuset.h"
-#include "tst_test.h"
#include "config.h"
static inline int get_cpu(unsigned *cpu_id,
- unsigned *node_id LTP_ATTRIBUTE_UNUSED,
- void *cache_struct LTP_ATTRIBUTE_UNUSED)
+ unsigned *node_id)
{
-#ifndef HAVE_SCHED_GETCPU
- return tst_syscall(__NR_getcpu, cpu_id, node_id, cache_struct);
-#else
- *cpu_id = sched_getcpu();
-#endif
+ return tst_syscall(__NR_getcpu, cpu_id, node_id, NULL);
+
return 0;
}
@@ -78,7 +74,7 @@ realloc:
return cpu_max;
}
-#ifdef __i386__
+#if defined(__i386__) || defined(__x86_64__)
static unsigned int get_nodeid(unsigned int cpu_id)
{
DIR *directory_parent, *directory_node;
@@ -125,22 +121,22 @@ static void run(void)
{
unsigned int cpu_id, node_id = 0;
unsigned int cpu_set;
-#ifdef __i386__
+#if defined(__i386__) || defined(__x86_64__)
unsigned int node_set;
#endif
cpu_set = set_cpu_affinity();
-#ifdef __i386__
+#if defined(__i386__) || defined(__x86_64__)
node_set = get_nodeid(cpu_set);
#endif
- TEST(get_cpu(&cpu_id, &node_id, NULL));
+ TEST(get_cpu(&cpu_id, &node_id));
if (TST_RET == 0) {
if (cpu_id != cpu_set)
tst_res(TFAIL, "getcpu() returned wrong value"
" expected cpuid:%d, returned value cpuid: %d",
cpu_set, cpu_id);
-#ifdef __i386__
+#if defined(__i386__) || defined(__x86_64__)
else if (node_id != node_set)
tst_res(TFAIL, "getcpu() returned wrong value"
" expected node id:%d returned node id:%d",
--
2.38.1
More information about the ltp
mailing list