Framework for instruction pattern detection and protection. This class requires other classes, which define the patterns to be detected and uses this class, to be any useful. Instruction patterns can be defined to identify specific idle loops, busy-wait loops, spinlocks etc in memory which can be fast forwarded in the simulators time
conf_object, log_object, hypersim_pattern_matcher
- cell-change
- Notifier that is triggered after the object's cell was changed.
- object-delete
- Notifier that is triggered just before Simics object is deleted.
- queue-change
- Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
-
delete-pattern
– remove a pattern from the matcher
-
info
– print information about the object
-
status
– print status of the object
-
memory_space
-
Required attribute;
read/write access; type:
o
Physical memory space, must implement memory_space and breakpoint interfaces.
-
cpus
-
Optional attribute;
read/write access; type:
[o*]
CPUs handling pattern matcher events.
-
patterns
-
Pseudo attribute;
read-only access; type:
[o*]
Installed pattern objects.
-
search_interval
-
Pseudo attribute;
read/write access; type:
[ii]
Pattern search interval in steps, [lower, upper].
-
cpu_ffwd_steps
-
Pseudo attribute;
read-only access; type:
[[oii]*]
(cpu, ffwd_idle_steps, ffwd_steps)* List of how many steps each CPU has been fast-forwarded (for all hypersim patterns)
-
total_ffwd_steps
-
Pseudo attribute;
read-only access; type:
[ii]
(ffwd_idle_steps, ffwd_steps) Total amount of steps that has been fast-forwarded (for all hypersim patterns and all CPUs)
-
pattern_info
-
Pseudo attribute;
read-only access; type:
[[os[[ii[[oii]*]]*]iii]*]
(pattern_obj, pattern_name, (paddr, active, (cpu, ffwd_idle_steps, ffwd_steps)*, failed_examine_calls, successful_trigger_calls, failed_trigger_calls)*)* List of each pattern and the physical addresses the patterns have been found and how many steps each CPU has been fast-forwarded for the physical address.
-
detected_patterns
-
Pseudo attribute;
read-only access; type:
[[os[i*]]*]
(pattern_obj, pattern_name, (physical_address)*)* List of each pattern and each physical address where the pattern have been detected (and currently active)
hypersim-pattern-matcher