Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 100511
b: refs/heads/master
c: 72829bc
h: refs/heads/master
i:
  100509: 1bfbcb7
  100507: 414b425
  100503: aabed41
  100495: 4e24099
  100479: 2f8ff73
v: v3
  • Loading branch information
Thomas Gleixner committed May 23, 2008
1 parent 4d57ae4 commit 967081a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 17 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: 86069782d62e731b4835a0cf8eb7d1d0e17cf306
refs/heads/master: 72829bc3d63cdc592d8f7dd86ad3b3fe8900fb74
24 changes: 8 additions & 16 deletions trunk/kernel/trace/trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ unsigned long __read_mostly tracing_thresh;

static int tracing_disabled = 1;

static long
long
ns2usecs(cycle_t nsec)
{
nsec += 500;
Expand Down Expand Up @@ -96,18 +96,6 @@ unsigned long nsecs_to_usecs(unsigned long nsecs)
return nsecs / 1000;
}

enum trace_type {
__TRACE_FIRST_TYPE = 0,

TRACE_FN,
TRACE_CTX,
TRACE_WAKE,
TRACE_STACK,
TRACE_SPECIAL,

__TRACE_LAST_TYPE
};

enum trace_flag_type {
TRACE_FLAG_IRQS_OFF = 0x01,
TRACE_FLAG_NEED_RESCHED = 0x02,
Expand Down Expand Up @@ -190,7 +178,7 @@ void *head_page(struct trace_array_cpu *data)
return page_address(page);
}

static int
int
trace_seq_printf(struct trace_seq *s, const char *fmt, ...)
{
int len = (PAGE_SIZE - 1) - s->len;
Expand All @@ -205,7 +193,7 @@ trace_seq_printf(struct trace_seq *s, const char *fmt, ...)
va_end(ap);

/* If we can't write it all, don't bother writing anything */
if (ret > len)
if (ret >= len)
return 0;

s->len += ret;
Expand Down Expand Up @@ -638,7 +626,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags)
pc = preempt_count();

entry->preempt_count = pc & 0xff;
entry->pid = tsk->pid;
entry->pid = (tsk) ? tsk->pid : 0;
entry->t = ftrace_now(raw_smp_processor_id());
entry->flags = (irqs_disabled_flags(flags) ? TRACE_FLAG_IRQS_OFF : 0) |
((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) |
Expand Down Expand Up @@ -1541,6 +1529,9 @@ static int trace_empty(struct trace_iterator *iter)

static int print_trace_line(struct trace_iterator *iter)
{
if (iter->trace && iter->trace->print_line)
return iter->trace->print_line(iter);

if (trace_flags & TRACE_ITER_BIN)
return print_bin_fmt(iter);

Expand Down Expand Up @@ -2162,6 +2153,7 @@ static int tracing_open_pipe(struct inode *inode, struct file *filp)
return -ENOMEM;

iter->tr = &global_trace;
iter->trace = current_trace;

filp->private_data = iter;

Expand Down
15 changes: 15 additions & 0 deletions trunk/kernel/trace/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@
#include <linux/sched.h>
#include <linux/clocksource.h>

enum trace_type {
__TRACE_FIRST_TYPE = 0,

TRACE_FN,
TRACE_CTX,
TRACE_WAKE,
TRACE_STACK,
TRACE_SPECIAL,

__TRACE_LAST_TYPE
};

/*
* Function trace entry - function address and parent function addres:
*/
Expand Down Expand Up @@ -130,6 +142,7 @@ struct tracer {
int (*selftest)(struct tracer *trace,
struct trace_array *tr);
#endif
int (*print_line)(struct trace_iterator *iter);
struct tracer *next;
int print_max;
};
Expand Down Expand Up @@ -276,6 +289,8 @@ extern int trace_selftest_startup_sched_switch(struct tracer *trace,
#endif /* CONFIG_FTRACE_STARTUP_TEST */

extern void *head_page(struct trace_array_cpu *data);
extern int trace_seq_printf(struct trace_seq *s, const char *fmt, ...);
extern long ns2usecs(cycle_t nsec);

extern unsigned long trace_flags;

Expand Down

0 comments on commit 967081a

Please sign in to comment.