diff --git a/wlauto/utils/trace_cmd.py b/wlauto/utils/trace_cmd.py
index bd87b98b..7a7b36d1 100644
--- a/wlauto/utils/trace_cmd.py
+++ b/wlauto/utils/trace_cmd.py
@@ -191,6 +191,20 @@ def sched_switch_parser(event, text):
         return default_body_parser(event, text.replace('==>', ''))
 
 
+def sched_stat_parser(event, text):
+    """
+    sched_stat_* events unclude the units, "[ns]", in an otherwise
+    regular key=value sequence; so the units  need to be stripped out first.
+    """
+    return default_body_parser(event, text.replace(' [ns]', ''))
+
+
+def sched_wakeup_parser(event, text):
+    regex = re.compile(r'(?P<comm>\S+):(?P<pid>\d+) \[(?P<prio>\d+)\] success=(?P<success>\d) CPU:(?P<cpu>\d+)')
+    parse_func = regex_body_parser(regex)
+    return parse_func(event, text)
+
+
 # Maps event onto the corresponding parser for its body text. A parser may be
 # a callable with signature
 #
@@ -200,7 +214,14 @@ def sched_switch_parser(event, text):
 # regex). In case of a string/regex, its named groups will be used to populate
 # the event's attributes.
 EVENT_PARSER_MAP = {
+    'sched_stat_blocked': sched_stat_parser,
+    'sched_stat_iowait': sched_stat_parser,
+    'sched_stat_runtime': sched_stat_parser,
+    'sched_stat_sleep': sched_stat_parser,
+    'sched_stat_wait': sched_stat_parser,
     'sched_switch': sched_switch_parser,
+    'sched_wakeup': sched_wakeup_parser,
+    'sched_wakeup_new': sched_wakeup_parser,
 }
 
 TRACE_EVENT_REGEX = re.compile(r'^\s+(?P<thread>\S+.*?\S+)\s+\[(?P<cpu_id>\d+)\]\s+(?P<ts>[\d.]+):\s+'