Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 141023
b: refs/heads/master
c: 4bda2d5
h: refs/heads/master
i:
  141021: ecc7270
  141019: 459e7cd
  141015: 0cb9f0e
  141007: 729f942
  140991: 7c6a40f
v: v3
  • Loading branch information
Tom Zanussi authored and Ingo Molnar committed Mar 24, 2009
1 parent 2e0409b commit ba49a64
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 22 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: 09f1f245c79585383de63e3ca54d0f91824bff3a
refs/heads/master: 4bda2d517bfa3ce3d7044e06988cdddae7adffe2
3 changes: 2 additions & 1 deletion trunk/kernel/trace/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -840,7 +840,8 @@ struct filter_pred {
int trace_define_field(struct ftrace_event_call *call, char *type,
char *name, int offset, int size);
extern void filter_free_pred(struct filter_pred *pred);
extern int filter_print_preds(struct filter_pred **preds, char *buf);
extern void filter_print_preds(struct filter_pred **preds,
struct trace_seq *s);
extern int filter_parse(char **pbuf, struct filter_pred *pred);
extern int filter_add_pred(struct ftrace_event_call *call,
struct filter_pred *pred);
Expand Down
8 changes: 4 additions & 4 deletions trunk/kernel/trace/trace_events.c
Original file line number Diff line number Diff line change
Expand Up @@ -481,8 +481,8 @@ event_filter_read(struct file *filp, char __user *ubuf, size_t cnt,

trace_seq_init(s);

r = filter_print_preds(call->preds, s->buffer);
r = simple_read_from_buffer(ubuf, cnt, ppos, s->buffer, r);
filter_print_preds(call->preds, s);
r = simple_read_from_buffer(ubuf, cnt, ppos, s->buffer, s->len);

kfree(s);

Expand Down Expand Up @@ -547,8 +547,8 @@ subsystem_filter_read(struct file *filp, char __user *ubuf, size_t cnt,

trace_seq_init(s);

r = filter_print_preds(system->preds, s->buffer);
r = simple_read_from_buffer(ubuf, cnt, ppos, s->buffer, r);
filter_print_preds(system->preds, s);
r = simple_read_from_buffer(ubuf, cnt, ppos, s->buffer, s->len);

kfree(s);

Expand Down
25 changes: 9 additions & 16 deletions trunk/kernel/trace/trace_events_filter.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <linux/ctype.h>

#include "trace.h"
#include "trace_output.h"

static int filter_pred_64(struct filter_pred *pred, void *event)
{
Expand Down Expand Up @@ -108,40 +109,32 @@ int filter_match_preds(struct ftrace_event_call *call, void *rec)
return 1;
}

int filter_print_preds(struct filter_pred **preds, char *buf)
void filter_print_preds(struct filter_pred **preds, struct trace_seq *s)
{
ssize_t this_len = 0;
char *field_name;
struct filter_pred *pred;
int i;

if (!preds) {
this_len += sprintf(buf + this_len, "none\n");
return this_len;
trace_seq_printf(s, "none\n");
return;
}

for (i = 0; i < MAX_FILTER_PRED; i++) {
if (preds[i]) {
pred = preds[i];
field_name = pred->field_name;
if (i)
this_len += sprintf(buf + this_len,
pred->or ? "|| " : "&& ");
this_len += sprintf(buf + this_len,
"%s ", field_name);
this_len += sprintf(buf + this_len,
pred->not ? "!= " : "== ");
trace_seq_printf(s, pred->or ? "|| " : "&& ");
trace_seq_printf(s, "%s ", field_name);
trace_seq_printf(s, pred->not ? "!= " : "== ");
if (pred->str_val)
this_len += sprintf(buf + this_len,
"%s\n", pred->str_val);
trace_seq_printf(s, "%s\n", pred->str_val);
else
this_len += sprintf(buf + this_len,
"%llu\n", pred->val);
trace_seq_printf(s, "%llu\n", pred->val);
} else
break;
}

return this_len;
}

static struct ftrace_event_field *
Expand Down

0 comments on commit ba49a64

Please sign in to comment.