DynamoRIO
|
#include <scheduler.h>
Public Member Functions | |
input_thread_info_t (std::vector< range_t > regions) | |
input_thread_info_t (memref_tid_t tid, std::vector< range_t > regions) | |
input_thread_info_t (memref_tid_t tid, int priority) | |
input_thread_info_t (std::set< output_ordinal_t > output_binding) | |
input_thread_info_t (memref_tid_t tid, std::set< output_ordinal_t > output_binding) | |
Data Fields | |
size_t | struct_size = sizeof(input_thread_info_t) |
std::vector< memref_tid_t > | tids |
std::set< output_ordinal_t > | output_binding |
int | priority = 0 |
std::vector< range_t > | regions_of_interest |
Detailed Description
template<typename RecordType, typename ReaderType>
struct dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_thread_info_t
Specifies details about one set of input trace files from one workload, each input file representing a single software thread. It is assumed that there is no thread id duplication within one workload.
Constructor & Destructor Documentation
◆ input_thread_info_t() [1/5]
|
inlineexplicit |
Convenience constructor for common usage.
◆ input_thread_info_t() [2/5]
|
inline |
Convenience constructor for common usage.
◆ input_thread_info_t() [3/5]
|
inline |
Convenience constructor for common usage.
◆ input_thread_info_t() [4/5]
|
inline |
Convenience constructor for placing all threads for one workload on a set of cores for a static partitioning.
◆ input_thread_info_t() [5/5]
|
inline |
Convenience constructor for placing one thread on a set of cores.
Field Documentation
◆ output_binding
std::set<output_ordinal_t> dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_thread_info_t::output_binding |
Limits these threads to this set of output streams. They will not be scheduled on any other output streams.
◆ priority
int dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_thread_info_t::priority = 0 |
Relative priority for scheduling. The default is 0. Higher values have higher priorities and will starve lower-priority inputs. Higher priorities out-weigh dependencies such as DEPENDENCY_TIMESTAMPS.
◆ regions_of_interest
std::vector<range_t> dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_thread_info_t::regions_of_interest |
If non-empty, all input records outside of these ranges are skipped: it is as though the input were constructed by concatenating these ranges together. A TRACE_MARKER_TYPE_WINDOW_ID marker is inserted between ranges (with a value equal to the range ordinal) to notify the client of the discontinuity. This marker is inserted between back-to-back regions with no separation, but it is not inserted prior to the first range. A dynamorio::drmemtrace::TRACE_TYPE_THREAD_EXIT record is inserted after the final range. These ranges must be non-overlapping and in increasing order.
Be aware that selecting a subset of code can remove inter-input communication steps that could be required for forward progress. For example, if selected subsets include TRACE_MARKER_TYPE_SYSCALL_UNSCHEDULE with no timeout but do not include a corresponding TRACE_MARKER_TYPE_SYSCALL_SCHEDULE for wakeup, an input could remain unscheduled.
◆ struct_size
size_t dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_thread_info_t::struct_size = sizeof(input_thread_info_t) |
Size of the struct for binary-compatible additions.
◆ tids
std::vector<memref_tid_t> dynamorio::drmemtrace::scheduler_tmpl_t< RecordType, ReaderType >::input_thread_info_t::tids |
Which threads the details in this structure apply to. If empty, the details apply to all not-yet-mentioned (by other 'tids' vectors in prior entries for this workload) threads in the dynamorio::drmemtrace::scheduler_tmpl_t::input_workload_t.
The documentation for this struct was generated from the following file:
- /home/runner/work/dynamorio/dynamorio/build_release-64/clients/include/drmemtrace/scheduler.h