projects
/
lttv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Wakeup change state only if proc not running (v2)
[lttv.git]
/
lttv
/
lttv
/
state.c
diff --git
a/lttv/lttv/state.c
b/lttv/lttv/state.c
index 871df9bc95ae571768912fae4094c8f76cc95d2f..938f23e4cd911ae52fc4f87d13f06f63d457a384 100644
(file)
--- a/
lttv/lttv/state.c
+++ b/
lttv/lttv/state.c
@@
-227,7
+227,7
@@
static void lttv_trace_states_read_raw(LttvTraceState *tcs, FILE *fp,
GPtrArray *quarktable);
/* Resource function prototypes */
GPtrArray *quarktable);
/* Resource function prototypes */
-static LttvBdevState *get_hashed_bdevstate(LttvTraceState *ts, guint
16
devcode);
+static LttvBdevState *get_hashed_bdevstate(LttvTraceState *ts, guint
32
devcode);
static LttvBdevState *bdevstate_new(void);
static void bdevstate_free(LttvBdevState *);
static void bdevstate_free_cb(gpointer key, gpointer value, gpointer user_data);
static LttvBdevState *bdevstate_new(void);
static void bdevstate_free(LttvBdevState *);
static void bdevstate_free_cb(gpointer key, gpointer value, gpointer user_data);
@@
-1491,7
+1491,7
@@
static void lttv_state_free_trap_states(LttvTrapState *states, guint n)
/* bdevstate stuff */
/* bdevstate stuff */
-static LttvBdevState *get_hashed_bdevstate(LttvTraceState *ts, guint
16
devcode)
+static LttvBdevState *get_hashed_bdevstate(LttvTraceState *ts, guint
32
devcode)
{
gint devcode_gint = devcode;
gpointer bdev = g_hash_table_lookup(ts->bdev_states, &devcode_gint);
{
gint devcode_gint = devcode;
gpointer bdev = g_hash_table_lookup(ts->bdev_states, &devcode_gint);
@@
-2764,7
+2764,7
@@
static gboolean bdev_request_issue(void *hook_data, void *call_data)
lttv_trace_get_hook_field(th, 1));
guint oper = ltt_event_get_long_unsigned(e,
lttv_trace_get_hook_field(th, 2));
lttv_trace_get_hook_field(th, 1));
guint oper = ltt_event_get_long_unsigned(e,
lttv_trace_get_hook_field(th, 2));
- guint
16
devcode = MKDEV(major,minor);
+ guint
32
devcode = MKDEV(major,minor);
/* have we seen this block device before? */
gpointer bdev = get_hashed_bdevstate(ts, devcode);
/* have we seen this block device before? */
gpointer bdev = get_hashed_bdevstate(ts, devcode);
@@
-2790,7
+2790,7
@@
static gboolean bdev_request_complete(void *hook_data, void *call_data)
lttv_trace_get_hook_field(th, 1));
//guint oper = ltt_event_get_long_unsigned(e,
// lttv_trace_get_hook_field(th, 2));
lttv_trace_get_hook_field(th, 1));
//guint oper = ltt_event_get_long_unsigned(e,
// lttv_trace_get_hook_field(th, 2));
- guint
16
devcode = MKDEV(major,minor);
+ guint
32
devcode = MKDEV(major,minor);
/* have we seen this block device before? */
gpointer bdev = get_hashed_bdevstate(ts, devcode);
/* have we seen this block device before? */
gpointer bdev = get_hashed_bdevstate(ts, devcode);
@@
-2954,8
+2954,12
@@
static gboolean sched_try_wakeup(void *hook_data, void *call_data)
(LttvTraceState*)s->parent.t_context,
woken_cpu, woken_pid,
&s->parent.timestamp);
(LttvTraceState*)s->parent.t_context,
woken_cpu, woken_pid,
&s->parent.timestamp);
- process->state->s = LTTV_STATE_WAIT_CPU;
- process->state->change = s->parent.timestamp;
+
+ if (process->state->s == LTTV_STATE_WAIT || process->state->s == LTTV_STATE_WAIT_FORK)
+ {
+ process->state->s = LTTV_STATE_WAIT_CPU;
+ process->state->change = s->parent.timestamp;
+ }
g_debug("Wakeup: process %d on CPU %u\n", woken_pid, woken_cpu);
g_debug("Wakeup: process %d on CPU %u\n", woken_pid, woken_cpu);
This page took
0.038645 seconds
and
4
git commands to generate.