< prev index next >

src/os/linux/vm/os_linux.hpp

Print this page




 232   typedef void (*numa_set_bind_policy_func_t)(int policy);
 233 
 234   static sched_getcpu_func_t _sched_getcpu;
 235   static numa_node_to_cpus_func_t _numa_node_to_cpus;
 236   static numa_max_node_func_t _numa_max_node;
 237   static numa_available_func_t _numa_available;
 238   static numa_tonode_memory_func_t _numa_tonode_memory;
 239   static numa_interleave_memory_func_t _numa_interleave_memory;
 240   static numa_set_bind_policy_func_t _numa_set_bind_policy;
 241   static unsigned long* _numa_all_nodes;
 242 
 243   static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; }
 244   static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus = func; }
 245   static void set_numa_max_node(numa_max_node_func_t func) { _numa_max_node = func; }
 246   static void set_numa_available(numa_available_func_t func) { _numa_available = func; }
 247   static void set_numa_tonode_memory(numa_tonode_memory_func_t func) { _numa_tonode_memory = func; }
 248   static void set_numa_interleave_memory(numa_interleave_memory_func_t func) { _numa_interleave_memory = func; }
 249   static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) { _numa_set_bind_policy = func; }
 250   static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
 251   static int sched_getcpu_syscall(void);

 252  public:
 253   static int sched_getcpu()  { return _sched_getcpu != NULL ? _sched_getcpu() : -1; }
 254   static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) {
 255     return _numa_node_to_cpus != NULL ? _numa_node_to_cpus(node, buffer, bufferlen) : -1;
 256   }
 257   static int numa_max_node() { return _numa_max_node != NULL ? _numa_max_node() : -1; }
 258   static int numa_available() { return _numa_available != NULL ? _numa_available() : -1; }
 259   static int numa_tonode_memory(void *start, size_t size, int node) {
 260     return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
 261   }
 262   static void numa_interleave_memory(void *start, size_t size) {
 263     if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
 264       _numa_interleave_memory(start, size, _numa_all_nodes);
 265     }
 266   }
 267   static void numa_set_bind_policy(int policy) {
 268     if (_numa_set_bind_policy != NULL) {
 269       _numa_set_bind_policy(policy);
 270     }
 271   }




 232   typedef void (*numa_set_bind_policy_func_t)(int policy);
 233 
 234   static sched_getcpu_func_t _sched_getcpu;
 235   static numa_node_to_cpus_func_t _numa_node_to_cpus;
 236   static numa_max_node_func_t _numa_max_node;
 237   static numa_available_func_t _numa_available;
 238   static numa_tonode_memory_func_t _numa_tonode_memory;
 239   static numa_interleave_memory_func_t _numa_interleave_memory;
 240   static numa_set_bind_policy_func_t _numa_set_bind_policy;
 241   static unsigned long* _numa_all_nodes;
 242 
 243   static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; }
 244   static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus = func; }
 245   static void set_numa_max_node(numa_max_node_func_t func) { _numa_max_node = func; }
 246   static void set_numa_available(numa_available_func_t func) { _numa_available = func; }
 247   static void set_numa_tonode_memory(numa_tonode_memory_func_t func) { _numa_tonode_memory = func; }
 248   static void set_numa_interleave_memory(numa_interleave_memory_func_t func) { _numa_interleave_memory = func; }
 249   static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) { _numa_set_bind_policy = func; }
 250   static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
 251   static int sched_getcpu_syscall(void);
 252   static int create_tmpfile(const char* dir, size_t size, bool exec);
 253  public:
 254   static int sched_getcpu()  { return _sched_getcpu != NULL ? _sched_getcpu() : -1; }
 255   static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) {
 256     return _numa_node_to_cpus != NULL ? _numa_node_to_cpus(node, buffer, bufferlen) : -1;
 257   }
 258   static int numa_max_node() { return _numa_max_node != NULL ? _numa_max_node() : -1; }
 259   static int numa_available() { return _numa_available != NULL ? _numa_available() : -1; }
 260   static int numa_tonode_memory(void *start, size_t size, int node) {
 261     return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
 262   }
 263   static void numa_interleave_memory(void *start, size_t size) {
 264     if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
 265       _numa_interleave_memory(start, size, _numa_all_nodes);
 266     }
 267   }
 268   static void numa_set_bind_policy(int policy) {
 269     if (_numa_set_bind_policy != NULL) {
 270       _numa_set_bind_policy(policy);
 271     }
 272   }


< prev index next >