From f2ddb884f2300cd7709237975206e5b9d9b18445 Mon Sep 17 00:00:00 2001 From: Glenn Elliott Date: Mon, 29 Nov 2010 11:41:40 -0500 Subject: Add sched_trace data for Apative EDZL Added new trace event, st_task_completion_adaptive, to trace estimated execution time and estimation error when an AEDZL task completes. --- include/litmus/sched_trace.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'include') diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h index e1b0c9712b5f..237d1e1641d0 100644 --- a/include/litmus/sched_trace.h +++ b/include/litmus/sched_trace.h @@ -57,6 +57,12 @@ struct st_completion_data { /* A job completed. */ u8 __unused[3]; }; +struct st_completion_adaptive_data { /* Extra completion data for AEDZL */ + u32 estimated_exe; + s32 accumulated_err; + u8 __unused[8]; +}; + struct st_block_data { /* A task blocks. */ u64 when; u64 __unused; @@ -86,6 +92,7 @@ typedef enum { ST_BLOCK, ST_RESUME, ST_SYS_RELEASE, + ST_COMPLETION_ADAPTIVE } st_event_record_type_t; struct st_event_record { @@ -100,6 +107,7 @@ struct st_event_record { DATA(switch_to); DATA(switch_away); DATA(completion); + DATA(completion_adaptive); DATA(block); DATA(resume); DATA(sys_release); @@ -136,6 +144,8 @@ feather_callback void do_sched_trace_task_switch_away(unsigned long id, feather_callback void do_sched_trace_task_completion(unsigned long id, struct task_struct* task, unsigned long forced); +feather_callback void do_sched_trace_task_completion_adaptive(unsigned long id, + struct task_struct* task); feather_callback void do_sched_trace_task_block(unsigned long id, struct task_struct* task); feather_callback void do_sched_trace_task_resume(unsigned long id, @@ -175,6 +185,8 @@ feather_callback void do_sched_trace_sys_release(unsigned long id, /* when is a pointer, it does not need an explicit cast to unsigned long */ #define sched_trace_sys_release(when) \ SCHED_TRACE(SCHED_TRACE_BASE_ID + 9, do_sched_trace_sys_release, when) +#define sched_trace_task_completion_adaptive(t) \ + SCHED_TRACE(SCHED_TRACE_BASE_ID + 10, do_sched_trace_task_completion_adaptive, t) #define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */ -- cgit v1.2.2