Skip to content

Commit

Permalink
perf tools: Remove expensive old debug code from perf top
Browse files Browse the repository at this point in the history
Calling gettimeofday() at high frequency is painful for handicapped
boxen. The spot calling gettimeofday() is old unneeded debug code,
so remove it.

Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1255438640.7173.1.camel@marge.simson.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Mike Galbraith authored and Ingo Molnar committed Oct 13, 2009
1 parent cfed95a commit f4f0b41
Showing 1 changed file with 1 addition and 14 deletions.
15 changes: 1 addition & 14 deletions tools/perf/builtin-top.c
Original file line number Diff line number Diff line change
Expand Up @@ -870,17 +870,13 @@ static unsigned int mmap_read_head(struct mmap_data *md)
return head;
}

struct timeval last_read, this_read;

static void mmap_read_counter(struct mmap_data *md)
{
unsigned int head = mmap_read_head(md);
unsigned int old = md->prev;
unsigned char *data = md->base + page_size;
int diff;

gettimeofday(&this_read, NULL);

/*
* If we're further behind than half the buffer, there's a chance
* the writer will bite our tail and mess up the samples under us.
Expand All @@ -891,23 +887,14 @@ static void mmap_read_counter(struct mmap_data *md)
*/
diff = head - old;
if (diff > md->mask / 2 || diff < 0) {
struct timeval iv;
unsigned long msecs;

timersub(&this_read, &last_read, &iv);
msecs = iv.tv_sec*1000 + iv.tv_usec/1000;

fprintf(stderr, "WARNING: failed to keep up with mmap data."
" Last read %lu msecs ago.\n", msecs);
fprintf(stderr, "WARNING: failed to keep up with mmap data.\n");

/*
* head points to a known good entry, start there.
*/
old = head;
}

last_read = this_read;

for (; old != head;) {
event_t *event = (event_t *)&data[old & md->mask];

Expand Down

0 comments on commit f4f0b41

Please sign in to comment.