src/os/linux/vm/os_linux.hpp

changeset 5645
0d59407e7e09
parent 5578
4c84d351cca9
parent 5644
88c255656030
child 5679
2e6938dd68f2
     1.1 --- a/src/os/linux/vm/os_linux.hpp	Tue Aug 27 18:55:33 2013 -0700
     1.2 +++ b/src/os/linux/vm/os_linux.hpp	Thu Aug 29 06:53:16 2013 -0700
     1.3 @@ -235,6 +235,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 @@ -242,6 +243,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 @@ -250,6 +252,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 @@ -267,6 +270,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