From 78d73d05fc66a095195537f4af52be54395cb2ce Mon Sep 17 00:00:00 2001 From: compudj Date: Mon, 21 Jun 2004 17:33:34 +0000 Subject: [PATCH] minor change git-svn-id: http://ltt.polymtl.ca/svn@604 04897980-b3bd-0310-b5e0-8ef037075253 --- .../requests_servicing_schedulers.txt | 95 ++++++++++++++----- 1 file changed, 70 insertions(+), 25 deletions(-) diff --git a/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt b/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt index 9779691f..6ba57814 100644 --- a/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt +++ b/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt @@ -73,7 +73,7 @@ context (the trace is specified by the viewer). Then, it processes the whole trace with this context (and hooks). Typically, a module that extends statistics will register hooks in the global -attributes tree under /TraceState/Statistics/ModuleName/hook_name . A viewer +attributes tree under /computation/modulename/hook_name . A viewer that needs these statistics for a set of traces does a background computation request through a call to the main window API function. It must specify all types of hooks that must be called for the specified trace. @@ -94,7 +94,8 @@ queue. Every hook that are added to the context by the scheduler comes from global attributes, i.e. -/traces/trace_path/TraceState/Statistics/ModuleName/hook_name +/traces/# + in LttvTrace attributes : modulename/hook_name They come with a flag telling either in_progress or ready. If the flag ready is set, a viewer knows that the data it needs is already ready and he @@ -113,15 +114,15 @@ added!). New Global Attributes -When a hook is added to the trace context, The variable -/traces/trace_path/TraceState/Statistics/ModuleName/hook_name is set. +/traces/# + in LttvTrace attributes : When a processing is fired, a variable -/traces/trace_path/TraceState/Statistics/ModuleName/in_progress is set. + computation/modulename/in_progress is set. When a processing finished, a variable -/traces/trace_path/TraceState/Statistics/ModuleName/in_progress is unset -/traces/trace_path/TraceState/Statistics/ModuleName/ready is set + computation/modulename/in_progress is unset + computation/modulename/ready is set @@ -131,7 +132,7 @@ Typical Use For a Viewer When a viewer wants extended information, it must first check if it is ready. if not : -Before a viewer makes a request, it must check the in_prgoress status of the +Before a viewer makes a request, it must check the in_progress status of the hooks. If the in_progress is unset, it makes the request. @@ -178,16 +179,52 @@ Background Scheduler Global traces Two global attributes per trace : -/traces/path_to_trace/LttvTrace +traces/# It is a pointer to the LttvTrace structure. -/traces/path_to_trace/LttvBackgroundComputation -/traces/path_to_trace/TraceState/... hooks to add to background computation - in_progress and ready flags. + In the LttvTrace attributes : + state/ + saved_states/ + statistics/ + modes/ + cpu/ + processes/ + modulename1/ + modulename2/ + ... + computation/ /* Trace specific background computation hooks status */ + state/ + in_progress + ready + statistics/ + in_progress + ready + modulename1/ + in_progress + ready + requests_queue/ /* Background computation requests */ + requests_current/ /* Type : BackgroundRequest */ + notify_queue/ + notify_current/ + +computation/ /* Global background computation hooks */ + state/ + before_chunk_traceset + before_chunk_trace + before_chunk_tracefile + after_... + before_request + after_request + event_hook + event_hook_by_id + statistics/ + ... + modulename1/ + ... + struct _LttvBackgroundComputation { GSList *events_requests; - /* A GSList * to the first events request of background computation for a - * trace. */ + /* A GSList of events request background computation for a trace. */ LttvTraceset *ts; /* A factice traceset that contains just one trace */ LttvTracesetContext *tsc; @@ -198,23 +235,31 @@ struct _LttvBackgroundComputation { Modify Traceset -Points to the global traces. Opens new one only when no instance of the pathname -exists. - -Modify LttvTrace ? +Points to the global traces. Main window must open a new one only when no +instance of the pathname exists. Modify trace opening / close to make them create and destroy -LttvBackgroundComputation (and call end requests hooks for servicing requests ?) +LttvBackgroundComputation (and call end requests hooks for servicing requests) +and global trace info when references to the trace is zero. + + EventsRequest Structure -This structure is the element of the events requests pools. The viewer field is -used as an ownership identifier as well as pointer to the data structure upon -which the action applies. Typically, this is a pointer to the viewer's data -structure. +This structure is the element of the events requests pools. The owner field is +used as an ownership identifier. The viewer field is a pointer to the data +structure upon which the action applies. Typically, both will be pointers to +the viewer's data structure. + +In a ad hoc events request, a pointer to the EventsRequest structure is used as +hook_data in the hook lists : it must have been added by the viewers. + + +Modify module load/unload -In a ad hoc events request, a pointer to this structure is used as hook_data in -the hook lists +A module that registers global computation hooks in the global attributes upon +load should unregister them when unloaded. Also, it must remove every background +computation request for each trace that has its own string as gchar *. -- 2.34.1