X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Fstate.h;h=523e058b2cdd107d851f219ba0850bfb08cddc76;hb=ec7a5af61127aa50a1839eee5be99ce53494c57b;hp=c3bdf1385624b3235027f97c2b4f69cbf999e408;hpb=67f729732d629426de5a04965a81f6f0848af053;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/state.h b/ltt/branches/poly/lttv/lttv/state.h index c3bdf138..523e058b 100644 --- a/ltt/branches/poly/lttv/lttv/state.h +++ b/ltt/branches/poly/lttv/lttv/state.h @@ -61,7 +61,8 @@ extern GQuark LTT_FACILITY_FS, LTT_FACILITY_LIST, LTT_FACILITY_USER_GENERIC, - LTT_FACILITY_BLOCK; + LTT_FACILITY_BLOCK, + LTT_FACILITY_STATEDUMP; /* Events Quarks */ @@ -72,6 +73,7 @@ extern GQuark LTT_EVENT_TRAP_EXIT, LTT_EVENT_IRQ_ENTRY, LTT_EVENT_IRQ_EXIT, + LTT_EVENT_SOFT_IRQ_RAISE, LTT_EVENT_SOFT_IRQ_ENTRY, LTT_EVENT_SOFT_IRQ_EXIT, LTT_EVENT_SCHED_SCHEDULE, @@ -87,7 +89,9 @@ extern GQuark LTT_EVENT_THREAD_BRAND, LTT_EVENT_REQUEST_ISSUE, LTT_EVENT_REQUEST_COMPLETE, - LTT_EVENT_LIST_INTERRUPT; + LTT_EVENT_LIST_INTERRUPT, + LTT_EVENT_SYS_CALL_TABLE, + LTT_EVENT_SOFTIRQ_VEC; /* Fields Quarks */ @@ -114,7 +118,10 @@ extern GQuark LTT_FIELD_MINOR, LTT_FIELD_MAJOR, LTT_FIELD_OPERATION, - LTT_FIELD_ACTION; + LTT_FIELD_ACTION, + LTT_FIELD_ID, + LTT_FIELD_ADDRESS, + LTT_FIELD_SYMBOL; typedef struct _LttvTracesetState LttvTracesetState; typedef struct _LttvTracesetStateClass LttvTracesetStateClass; @@ -212,6 +219,7 @@ extern LttvCPUMode LTTV_CPU_IDLE, LTTV_CPU_BUSY, LTTV_CPU_IRQ, + LTTV_CPU_SOFT_IRQ, LTTV_CPU_TRAP; typedef GQuark LttvIRQMode; @@ -259,6 +267,7 @@ typedef struct _LttvProcessState { guint64 current_function; LttvProcessType type; /* kernel thread or user space ? */ guint target_pid; /* target PID of the current event. */ + guint free_events; /* 0 : none, 1 : free or exit dead, 2 : should delete */ } LttvProcessState; #define ANY_CPU 0 /* For clarity sake : a call to lttv_state_find_process for @@ -309,12 +318,23 @@ GType lttv_traceset_state_get_type (void); typedef struct _LttvCPUState { GArray *mode_stack; guint last_irq; + guint last_soft_irq; + guint last_trap; } LttvCPUState; typedef struct _LttvIRQState { GArray *mode_stack; } LttvIRQState; +typedef struct _LttvSoftIRQState { + guint pending; /* number of times it is pending */ + guint running; /* number of times it is currently running (on different processors) */ +} LttvSoftIRQState; + +typedef struct _LttvTrapState { + guint running; /* number of times it is currently running (on different processors) */ +} LttvTrapState; + typedef struct _LttvBdevState { GArray *mode_stack; } LttvBdevState; @@ -334,7 +354,7 @@ struct _LttvTraceState { GQuark *trap_names; guint nb_traps; guint nb_irqs; - guint nb_softirqs; + guint nb_soft_irqs; GQuark *irq_names; GQuark *soft_irq_names; LttTime *max_time_state_recomputed_in_seek; @@ -344,6 +364,8 @@ struct _LttvTraceState { gboolean has_precomputed_states; LttvCPUState *cpu_states; /* state of each cpu */ LttvIRQState *irq_states; /* state of each irq handler */ + LttvSoftIRQState *soft_irq_states; /* state of each softirq */ + LttvTrapState *trap_states; /* state of each trap */ GHashTable *bdev_states; /* state of the block devices */ };