Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 312332
b: refs/heads/master
c: 0866a97
h: refs/heads/master
v: v3
  • Loading branch information
Steven Rostedt authored and Namhyung Kim committed Jul 4, 2012
1 parent cf833d3 commit e24fc14
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c2e6dc2b268cca44d522b2ee86147f0d30d7e3e4
refs/heads/master: 0866a97eb7562409ba792f5e904841dd8e23c8b5
57 changes: 38 additions & 19 deletions trunk/tools/lib/traceevent/event-parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -2884,7 +2884,7 @@ static int get_common_info(struct pevent *pevent,
event = pevent->events[0];
field = pevent_find_common_field(event, type);
if (!field)
die("field '%s' not found", type);
return -1;

*offset = field->offset;
*size = field->size;
Expand Down Expand Up @@ -2935,15 +2935,16 @@ static int parse_common_flags(struct pevent *pevent, void *data)

static int parse_common_lock_depth(struct pevent *pevent, void *data)
{
int ret;

ret = __parse_common(pevent, data,
&pevent->ld_size, &pevent->ld_offset,
"common_lock_depth");
if (ret < 0)
return -1;
return __parse_common(pevent, data,
&pevent->ld_size, &pevent->ld_offset,
"common_lock_depth");
}

return ret;
static int parse_common_migrate_disable(struct pevent *pevent, void *data)
{
return __parse_common(pevent, data,
&pevent->ld_size, &pevent->ld_offset,
"common_migrate_disable");
}

static int events_id_cmp(const void *a, const void *b);
Expand Down Expand Up @@ -3988,29 +3989,40 @@ void pevent_data_lat_fmt(struct pevent *pevent,
struct trace_seq *s, struct pevent_record *record)
{
static int check_lock_depth = 1;
static int check_migrate_disable = 1;
static int lock_depth_exists;
static int migrate_disable_exists;
unsigned int lat_flags;
unsigned int pc;
int lock_depth;
int migrate_disable;
int hardirq;
int softirq;
void *data = record->data;

lat_flags = parse_common_flags(pevent, data);
pc = parse_common_pc(pevent, data);
/* lock_depth may not always exist */
if (check_lock_depth) {
struct format_field *field;
struct event_format *event;

check_lock_depth = 0;
event = pevent->events[0];
field = pevent_find_common_field(event, "common_lock_depth");
if (field)
lock_depth_exists = 1;
}
if (lock_depth_exists)
lock_depth = parse_common_lock_depth(pevent, data);
else if (check_lock_depth) {
lock_depth = parse_common_lock_depth(pevent, data);
if (lock_depth < 0)
check_lock_depth = 0;
else
lock_depth_exists = 1;
}

/* migrate_disable may not always exist */
if (migrate_disable_exists)
migrate_disable = parse_common_migrate_disable(pevent, data);
else if (check_migrate_disable) {
migrate_disable = parse_common_migrate_disable(pevent, data);
if (migrate_disable < 0)
check_migrate_disable = 0;
else
migrate_disable_exists = 1;
}

hardirq = lat_flags & TRACE_FLAG_HARDIRQ;
softirq = lat_flags & TRACE_FLAG_SOFTIRQ;
Expand All @@ -4029,6 +4041,13 @@ void pevent_data_lat_fmt(struct pevent *pevent,
else
trace_seq_putc(s, '.');

if (migrate_disable_exists) {
if (migrate_disable < 0)
trace_seq_putc(s, '.');
else
trace_seq_printf(s, "%d", migrate_disable);
}

if (lock_depth_exists) {
if (lock_depth < 0)
trace_seq_putc(s, '.');
Expand Down

0 comments on commit e24fc14

Please sign in to comment.