[PATCH] numademo: fix error on 32bit system

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Error Info on 32bit:
root@intel-x86:~# numademo -t -e 1M
Configured Nodes does not match available memory nodes

That's because sizeof(long)=4Word, but sizeof(long long)=8Word
on 32bit. So (long long) assigning to (long) maybe cause overflow.

long numa_node_size(int node, long *freep)
{
    ...
    long sz = numa_node_size64_int(node, &f2);
    return sz;
    ...
}
long long numa_node_size64(int node, long long *freep)
{
    ...
}

Signed-off-by: Hongzhi.Song <hongzhi.song@xxxxxxxxxxxxx>
---
 libnuma.c  | 4 ++--
 numa.h     | 2 +-
 numademo.c | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libnuma.c b/libnuma.c
index cac8851..8b5c6aa 100644
--- a/libnuma.c
+++ b/libnuma.c
@@ -791,10 +791,10 @@ long long numa_node_size64(int node, long long *freep)
 
 make_internal_alias(numa_node_size64);
 
-long numa_node_size(int node, long *freep)
+long long numa_node_size(int node, long long *freep)
 {
 	long long f2;
-	long sz = numa_node_size64_int(node, &f2);
+	long long sz = numa_node_size64_int(node, &f2);
 	if (freep)
 		*freep = f2;
 	return sz;
diff --git a/numa.h b/numa.h
index 3a8c543..268fb1d 100644
--- a/numa.h
+++ b/numa.h
@@ -143,7 +143,7 @@ int numa_preferred(void);
 
 /* Return node size and free memory */
 long long numa_node_size64(int node, long long *freep);
-long numa_node_size(int node, long *freep);
+long long numa_node_size(int node, long long *freep);
 
 int numa_pagesize(void);
 
diff --git a/numademo.c b/numademo.c
index a720db0..8c56da8 100644
--- a/numademo.c
+++ b/numademo.c
@@ -301,7 +301,7 @@ int max_node, numnodes;
 int get_node_list(void)
 {
         int a, got_nodes = 0;
-        long free_node_sizes;
+        long long free_node_sizes;
 
         numnodes = numa_num_configured_nodes();
         node_to_use = (int *)malloc(numnodes * sizeof(int));
-- 
2.23.0




[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]     [Devices]

  Powered by Linux