Dynamic Load Balance 3.6.1+32-59d1
numThreads.h
Go to the documentation of this file.
1/*********************************************************************************/
2/* Copyright 2009-2024 Barcelona Supercomputing Center */
3/* */
4/* This file is part of the DLB library. */
5/* */
6/* DLB is free software: you can redistribute it and/or modify */
7/* it under the terms of the GNU Lesser General Public License as published by */
8/* the Free Software Foundation, either version 3 of the License, or */
9/* (at your option) any later version. */
10/* */
11/* DLB is distributed in the hope that it will be useful, */
12/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
13/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
14/* GNU Lesser General Public License for more details. */
15/* */
16/* You should have received a copy of the GNU Lesser General Public License */
17/* along with DLB. If not, see <https://www.gnu.org/licenses/>. */
18/*********************************************************************************/
19
20#ifndef NUMTHREADS_H
21#define NUMTHREADS_H
22
23#include "apis/dlb_types.h"
24
25#include <sched.h>
26#include <stdbool.h>
27
28typedef struct pm_interface {
29 /* Callbacks list */
49
50void pm_init(pm_interface_t *pm);
52int pm_get_num_threads(void);
54 dlb_callback_t callback, void *arg);
56 dlb_callback_t *callback, void **arg);
57
58int update_threads(const pm_interface_t *pm, int threads);
59int set_mask(const pm_interface_t *pm, const cpu_set_t *cpu_set);
60int set_process_mask(const pm_interface_t *pm, const cpu_set_t *cpu_set);
61int add_mask(const pm_interface_t *pm, const cpu_set_t *cpu_set);
62int add_process_mask(const pm_interface_t *pm, const cpu_set_t *cpu_set);
63int enable_cpu(const pm_interface_t *pm, int cpuid);
64int disable_cpu(const pm_interface_t *pm, int cpuid);
65int enable_cpu_set(const pm_interface_t *pm, const cpu_set_t *cpu_set);
66int disable_cpu_set(const pm_interface_t *pm, const cpu_set_t *cpu_set);
67
68#endif //NUMTHREADS_H
void(* dlb_callback_enable_cpu_set_t)(const_dlb_cpu_set_t mask, void *arg)
Definition: dlb_types.h:81
void(* dlb_callback_set_process_mask_t)(const_dlb_cpu_set_t mask, void *arg)
Definition: dlb_types.h:76
void(* dlb_callback_set_active_mask_t)(const_dlb_cpu_set_t mask, void *arg)
Definition: dlb_types.h:75
dlb_callbacks_t
Definition: dlb_types.h:61
void(* dlb_callback_disable_cpu_set_t)(const_dlb_cpu_set_t mask, void *arg)
Definition: dlb_types.h:82
void(* dlb_callback_enable_cpu_t)(int cpuid, void *arg)
Definition: dlb_types.h:79
void(* dlb_callback_add_active_mask_t)(const_dlb_cpu_set_t mask, void *arg)
Definition: dlb_types.h:77
void(* dlb_callback_disable_cpu_t)(int cpuid, void *arg)
Definition: dlb_types.h:80
void(* dlb_callback_t)(void)
Definition: dlb_types.h:58
void(* dlb_callback_add_process_mask_t)(const_dlb_cpu_set_t mask, void *arg)
Definition: dlb_types.h:78
void(* dlb_callback_set_num_threads_t)(int num_threads, void *arg)
Definition: dlb_types.h:74
int disable_cpu(const pm_interface_t *pm, int cpuid)
Definition: numThreads.c:267
int add_mask(const pm_interface_t *pm, const cpu_set_t *cpu_set)
Definition: numThreads.c:196
int enable_cpu_set(const pm_interface_t *pm, const cpu_set_t *cpu_set)
Definition: numThreads.c:246
int set_process_mask(const pm_interface_t *pm, const cpu_set_t *cpu_set)
Definition: numThreads.c:186
void pm_finalize(pm_interface_t *pm)
Definition: numThreads.c:56
int pm_get_num_threads(void)
Definition: numThreads.c:61
int enable_cpu(const pm_interface_t *pm, int cpuid)
Definition: numThreads.c:227
int disable_cpu_set(const pm_interface_t *pm, const cpu_set_t *cpu_set)
Definition: numThreads.c:286
int set_mask(const pm_interface_t *pm, const cpu_set_t *cpu_set)
Definition: numThreads.c:176
int pm_callback_get(const pm_interface_t *pm, dlb_callbacks_t which, dlb_callback_t *callback, void **arg)
Definition: numThreads.c:110
int update_threads(const pm_interface_t *pm, int threads)
Definition: numThreads.c:155
int pm_callback_set(pm_interface_t *pm, dlb_callbacks_t which, dlb_callback_t callback, void *arg)
Definition: numThreads.c:65
int add_process_mask(const pm_interface_t *pm, const cpu_set_t *cpu_set)
Definition: numThreads.c:217
void pm_init(pm_interface_t *pm)
Definition: numThreads.c:44
Definition: numThreads.h:28
void * dlb_callback_disable_cpu_arg
Definition: numThreads.h:43
dlb_callback_add_active_mask_t dlb_callback_add_active_mask_ptr
Definition: numThreads.h:36
dlb_callback_set_num_threads_t dlb_callback_set_num_threads_ptr
Definition: numThreads.h:30
void * dlb_callback_set_active_mask_arg
Definition: numThreads.h:33
void * dlb_callback_enable_cpu_arg
Definition: numThreads.h:41
void * dlb_callback_add_active_mask_arg
Definition: numThreads.h:37
dlb_callback_disable_cpu_set_t dlb_callback_disable_cpu_set_ptr
Definition: numThreads.h:46
void * dlb_callback_set_process_mask_arg
Definition: numThreads.h:35
dlb_callback_enable_cpu_set_t dlb_callback_enable_cpu_set_ptr
Definition: numThreads.h:44
dlb_callback_set_process_mask_t dlb_callback_set_process_mask_ptr
Definition: numThreads.h:34
dlb_callback_set_active_mask_t dlb_callback_set_active_mask_ptr
Definition: numThreads.h:32
dlb_callback_enable_cpu_t dlb_callback_enable_cpu_ptr
Definition: numThreads.h:40
dlb_callback_disable_cpu_t dlb_callback_disable_cpu_ptr
Definition: numThreads.h:42
void * dlb_callback_enable_cpu_set_arg
Definition: numThreads.h:45
dlb_callback_add_process_mask_t dlb_callback_add_process_mask_ptr
Definition: numThreads.h:38
void * dlb_callback_add_process_mask_arg
Definition: numThreads.h:39
void * dlb_callback_set_num_threads_arg
Definition: numThreads.h:31
void * dlb_callback_disable_cpu_set_arg
Definition: numThreads.h:47