src/os/linux/vm/os_linux.hpp

changeset 5644
88c255656030
parent 5255
a837fa3d3f86
child 5645
0d59407e7e09
     1.1 --- a/src/os/linux/vm/os_linux.hpp	Fri Aug 23 15:59:20 2013 -0700
     1.2 +++ b/src/os/linux/vm/os_linux.hpp	Thu Aug 22 10:50:41 2013 +0200
     1.3 @@ -221,6 +221,7 @@
     1.4    typedef int (*numa_available_func_t)(void);
     1.5    typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node);
     1.6    typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long *nodemask);
     1.7 +  typedef void (*numa_set_bind_policy_func_t)(int policy);
     1.8  
     1.9    static sched_getcpu_func_t _sched_getcpu;
    1.10    static numa_node_to_cpus_func_t _numa_node_to_cpus;
    1.11 @@ -228,6 +229,7 @@
    1.12    static numa_available_func_t _numa_available;
    1.13    static numa_tonode_memory_func_t _numa_tonode_memory;
    1.14    static numa_interleave_memory_func_t _numa_interleave_memory;
    1.15 +  static numa_set_bind_policy_func_t _numa_set_bind_policy;
    1.16    static unsigned long* _numa_all_nodes;
    1.17  
    1.18    static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; }
    1.19 @@ -236,6 +238,7 @@
    1.20    static void set_numa_available(numa_available_func_t func) { _numa_available = func; }
    1.21    static void set_numa_tonode_memory(numa_tonode_memory_func_t func) { _numa_tonode_memory = func; }
    1.22    static void set_numa_interleave_memory(numa_interleave_memory_func_t func) { _numa_interleave_memory = func; }
    1.23 +  static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) { _numa_set_bind_policy = func; }
    1.24    static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
    1.25    static int sched_getcpu_syscall(void);
    1.26  public:
    1.27 @@ -253,6 +256,11 @@
    1.28        _numa_interleave_memory(start, size, _numa_all_nodes);
    1.29      }
    1.30    }
    1.31 +  static void numa_set_bind_policy(int policy) {
    1.32 +    if (_numa_set_bind_policy != NULL) {
    1.33 +      _numa_set_bind_policy(policy);
    1.34 +    }
    1.35 +  }
    1.36    static int get_node_by_cpu(int cpu_id);
    1.37  };
    1.38  

mercurial