Browse Source

add api function to get the worker cpuset associated to an unitid

Olivier Aumage 6 years ago
parent
commit
b51da53285
2 changed files with 11 additions and 0 deletions
  1. 1 0
      starpurm/include/starpurm.h
  2. 10 0
      starpurm/src/starpurm.c

+ 1 - 0
starpurm/include/starpurm.h

@@ -145,6 +145,7 @@ starpurm_drs_ret_t starpurm_return_all_devices(starpurm_drs_desc_t *spd, int typ
 starpurm_drs_ret_t starpurm_return_device(starpurm_drs_desc_t *spd, int type_id, int unit_rank);
 
 /* cpusets */
+hwloc_cpuset_t starpurm_get_unit_cpuset(int unitid);
 hwloc_cpuset_t starpurm_get_cpu_worker_cpuset(int unit_rank);
 hwloc_cpuset_t starpurm_get_device_worker_cpuset(int type_id, int unit_rank);
 hwloc_cpuset_t starpurm_get_global_cpuset(void);

+ 10 - 0
starpurm/src/starpurm.c

@@ -1050,6 +1050,16 @@ void starpurm_spawn_kernel_callback(void *data, void(*f)(void *), void *args, vo
 
 }
 
+hwloc_cpuset_t starpurm_get_unit_cpuset(int unitid)
+{
+	assert(_starpurm != NULL);
+	assert(_starpurm->state != state_uninitialized);
+	struct s_starpurm *rm = _starpurm;
+
+	assert(unitid >= 0 && unitid < rm->nunits);
+	return hwloc_bitmap_dup(rm->units[unitid].worker_cpuset);
+}
+
 hwloc_cpuset_t starpurm_get_cpu_worker_cpuset(int unit_rank)
 {
 	assert(_starpurm != NULL);