33 class BackgroundWorkItem;
34 class BackgroundWorkThread;
135 long long _min_timeslice_needed = -1);
166 void make_inactive(
void);
167 void shutdown_work_item(
void);
std::string name
Definition bgwork.h:149
long long min_timeslice_needed
Definition bgwork.h:152
virtual ~BackgroundWorkItem(void)
BackgroundWorkManager * manager
Definition bgwork.h:150
virtual bool do_work(TimeLimit work_until)=0
unsigned index
Definition bgwork.h:153
BackgroundWorkItem(const std::string &_name)
void add_to_manager(BackgroundWorkManager *_manager, int _numa_domain=-1, long long _min_timeslice_needed=-1)
int numa_domain
Definition bgwork.h:151
void set_numa_domain(int _numa_domain)
long long max_timeslice
Definition bgwork.h:81
BackgroundWorkManager * manager
Definition bgwork.h:77
int numa_domain
Definition bgwork.h:82
unsigned starting_slot
Definition bgwork.h:78
BitMask allowed_work_item_mask[BITMASK_ARRAY_SIZE]
Definition bgwork.h:80
BitMask known_work_item_mask[BITMASK_ARRAY_SIZE]
Definition bgwork.h:79
bool do_work(long long max_time_in_ns, atomic< bool > *interrupt_flag)
void set_manager(BackgroundWorkManager *_manager)
void set_max_timeslice(long long _timeslice_in_ns)
static const unsigned STATE_ACTIVE_ITEMS_SHIFT
Definition bgwork.h:117
BackgroundWorkManager(void)
atomic< unsigned > num_work_items
Definition bgwork.h:97
void stop_dedicated_workers(void)
static const size_t BITMASK_BITS
Definition bgwork.h:59
atomic< BitMask > active_work_item_mask[BITMASK_ARRAY_SIZE]
Definition bgwork.h:98
static const unsigned STATE_SLEEPING_WORKERS_SHIFT
Definition bgwork.h:119
~BackgroundWorkManager(void)
Config cfg
Definition bgwork.h:93
void release_slot(unsigned slot)
unsigned long long BitMask
Definition bgwork.h:57
BackgroundWorkItem * work_items[MAX_WORK_ITEMS]
Definition bgwork.h:101
void start_dedicated_workers(Realm::CoreReservationSet &crs)
friend class BackgroundWorkThread
Definition bgwork.h:103
void configure_from_cmdline(std::vector< std::string > &cmdline)
DoorbellList db_list
Definition bgwork.h:124
std::vector< BackgroundWorkThread * > dedicated_workers
Definition bgwork.h:126
static const uint32_t STATE_SLEEPING_WORKERS_MASK
Definition bgwork.h:118
static const uint32_t STATE_ACTIVE_ITEMS_MASK
Definition bgwork.h:116
static const uint32_t STATE_SHUTDOWN_BIT
Definition bgwork.h:115
atomic< uint32_t > worker_state
Definition bgwork.h:120
static const size_t BITMASK_ARRAY_SIZE
Definition bgwork.h:60
atomic< int > work_item_usecounts[MAX_WORK_ITEMS]
Definition bgwork.h:100
DelegatingMutex db_mutex
Definition bgwork.h:123
Mutex mutex
Definition bgwork.h:96
unsigned assign_slot(BackgroundWorkItem *item)
void advertise_work(unsigned slot)
static const size_t MAX_WORK_ITEMS
Definition bgwork.h:58
#define REALM_INTERNAL_API_EXTERNAL_LINKAGE
Definition compiler_support.h:218
Definition activemsg.h:38
unsigned per_numa_workers
Definition bgwork.h:43
long long work_item_timeslice
Definition bgwork.h:48
size_t worker_stacksize_in_kb
Definition bgwork.h:46
long long worker_spin_interval
Definition bgwork.h:47
bool pin_numa
Definition bgwork.h:45
unsigned generic_workers
Definition bgwork.h:42
bool pin_generic
Definition bgwork.h:44