dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t Struct Reference

#include <scheduler.h>

Public Member Functions

 input_workload_t ()
 
 input_workload_t (const std::string &trace_path, std::vector< range_t > regions_of_interest={})
 
 input_workload_t (std::vector< input_reader_t > readers, std::vector< range_t > regions_of_interest={})
 

Data Fields

size_t struct_size = sizeof(input_workload_t)
 
std::string path
 
std::vector< input_reader_treaders
 
std::set< memref_tid_tonly_threads
 
std::vector< input_thread_info_tthread_modifiers
 

Detailed Description

template<typename RecordType, typename ReaderType>
struct dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t

Specifies the input workloads to be scheduled.

Constructor & Destructor Documentation

◆ input_workload_t() [1/3]

template<typename RecordType , typename ReaderType >
dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t::input_workload_t ( )
inline

Create an empty workload. This is not a valid final input.

◆ input_workload_t() [2/3]

template<typename RecordType , typename ReaderType >
dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t::input_workload_t ( const std::string &  trace_path,
std::vector< range_t regions_of_interest = {} 
)
inline

Create a workload coming from a directory of many trace files or from a single trace file where each trace file uses the given regions of interest.

◆ input_workload_t() [3/3]

template<typename RecordType , typename ReaderType >
dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t::input_workload_t ( std::vector< input_reader_t readers,
std::vector< range_t regions_of_interest = {} 
)
inline

Create a workload with a set of pre-initialized readers which use the given regions of interest.

Field Documentation

◆ only_threads

template<typename RecordType , typename ReaderType >
std::set<memref_tid_t> dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t::only_threads

If empty, every trace file in 'path' or every reader in 'readers' becomes an enabled input. If non-empty, only those inputs whose thread ids are in this vector are enabled and the rest are ignored.

◆ path

template<typename RecordType , typename ReaderType >
std::string dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t::path

A directory of trace files or a single trace file. A reader will be opened for each input file and its init() function will be called; that function will not block (variants where it does block, such as for IPC, should leave 'path' empty and use 'reader' below instead).

◆ readers

template<typename RecordType , typename ReaderType >
std::vector<input_reader_t> dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t::readers

An alternative to passing in a path and having the scheduler open that file(s) is to directly pass in a reader. This field is only considered if 'path' is empty. The scheduler will call the init() function for each reader at the time of the first access to it through an output stream (supporting IPC readers whose init() blocks).

◆ struct_size

template<typename RecordType , typename ReaderType >
size_t dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t::struct_size = sizeof(input_workload_t)

Size of the struct for binary-compatible additions.

◆ thread_modifiers

template<typename RecordType , typename ReaderType >
std::vector<input_thread_info_t> dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_workload_t::thread_modifiers

Scheduling modifiers for the threads in this workload.


The documentation for this struct was generated from the following file:
  • /home/runner/work/dynamorio/dynamorio/build_release-64/clients/include/drmemtrace/scheduler.h