Hi
We observed that LTP test cases are failing when run on some of the
distros
Problem Statement:
I observed that test cases mbind01.c and get_mempolicy01.c are failing during call to
get_mempolicy() with error -EINVAL.
In the kernel code the error comes from
----------------------------------------------------------------
SYSCALL_DEFINE5(get_mempolicy, int __user *, policy,
unsigned long __user *, nmask, unsigned long, maxnode,
unsigned long, addr, unsigned long, flags)
{
int err;
int uninitialized_var(pval);
nodemask_t nodes;
if (nmask != NULL && maxnode < MAX_NUMNODES)
return -EINVAL;
<== in the kernel code,
MAX_NUMNODES comes to 512
----------------------------------------------------------------
Analysis:
When kernel config option 'configure maximum number of SMP processors and NUMA node' is
set MAX_NUMNODES will be initialized to 512 and any call to get_mempolicy() with maxnode
value less than that cause the test to fail.
----------------------------------------------------------------
Fix:
increase the default maxnode value in the test case to reflect this value. maxnode value
comes from numaif.h and this patch increase the value to 512 from earlier 128.
Note:
I will submit it in the format, once the patch is accepted
Thanks
Yeehaw
This patch fixes the issues noticed while running test case mbind01.c. The test case failed while making call to get_mempolicy system call. The system call fails with kernel returning -EINVAL. This issues is observed due to compatibiliy issue between kernel and ltp code. When kernel configure option 'configure maximum number of SMP processors and NUMA node' is enabled kernel will initialize MAX_NUMNODES variable to 512. In the user space while calling get_mempolicy if user pass any value lesser than 512 for maxnode, the system calls fails with EINVAL. This patch addresses the issue by increasing the maxnode value to 512
Signed-off-by: Sharyathi Nagesh <[email protected]>
Index: ltp/testcases/kernel/syscalls/utils/numaif.h
===================================================================
--- ltp.orig/testcases/kernel/syscalls/utils/numaif.h 2009-06-23 19:51:32.000000000 +0530
+++ ltp/testcases/kernel/syscalls/utils/numaif.h 2009-10-20 09:16:00.000000000 +0530
@@ -29,7 +29,7 @@
#include "./include_j_h.h"
#include "linux_syscall_numbers.h"
-#define NUMA_NUM_NODES 128
+#define NUMA_NUM_NODES 512
typedef struct {
unsigned long n[NUMA_NUM_NODES/(sizeof(unsigned long)*8)];
} nodemask_t;
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list