Loading kernel/perf_event.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1356,7 +1356,7 @@ static void perf_ctx_adjust_freq(struct perf_event_context *ctx) u64 interrupts, freq; u64 interrupts, freq; spin_lock(&ctx->lock); spin_lock(&ctx->lock); list_for_each_entry(event, &ctx->group_list, group_entry) { list_for_each_entry_rcu(event, &ctx->event_list, event_entry) { if (event->state != PERF_EVENT_STATE_ACTIVE) if (event->state != PERF_EVENT_STATE_ACTIVE) continue; continue; Loading tools/perf/builtin-timechart.c +26 −2 Original line number Original line Diff line number Diff line Loading @@ -765,19 +765,40 @@ static void draw_wakeups(void) if (c->Y && c->start_time <= we->time && c->end_time >= we->time) { if (c->Y && c->start_time <= we->time && c->end_time >= we->time) { if (p->pid == we->waker) { if (p->pid == we->waker) { from = c->Y; from = c->Y; task_from = c->comm; task_from = strdup(c->comm); } } if (p->pid == we->wakee) { if (p->pid == we->wakee) { to = c->Y; to = c->Y; task_to = c->comm; task_to = strdup(c->comm); } } } } c = c->next; c = c->next; } } c = p->all; while (c) { if (p->pid == we->waker && !from) { from = c->Y; task_from = strdup(c->comm); } if (p->pid == we->wakee && !to) { to = c->Y; task_to = strdup(c->comm); } c = c->next; } } } p = p->next; p = p->next; } } if (!task_from) { task_from = malloc(40); sprintf(task_from, "[%i]", we->waker); } if (!task_to) { task_to = malloc(40); sprintf(task_to, "[%i]", we->wakee); } if (we->waker == -1) if (we->waker == -1) svg_interrupt(we->time, to); svg_interrupt(we->time, to); else if (from && to && abs(from - to) == 1) else if (from && to && abs(from - to) == 1) Loading @@ -785,6 +806,9 @@ static void draw_wakeups(void) else else svg_partial_wakeline(we->time, from, task_from, to, task_to); svg_partial_wakeline(we->time, from, task_from, to, task_to); we = we->next; we = we->next; free(task_from); free(task_to); } } } } Loading tools/perf/builtin-top.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -663,6 +663,8 @@ static void handle_keypress(int c) switch (c) { switch (c) { case 'd': case 'd': prompt_integer(&delay_secs, "Enter display delay"); prompt_integer(&delay_secs, "Enter display delay"); if (delay_secs < 1) delay_secs = 1; break; break; case 'e': case 'e': prompt_integer(&print_entries, "Enter display entries (lines)"); prompt_integer(&print_entries, "Enter display entries (lines)"); Loading tools/perf/util/PERF-VERSION-GEN +1 −1 Original line number Original line Diff line number Diff line #!/bin/sh #!/bin/sh GVF=PERF-VERSION-FILE GVF=PERF-VERSION-FILE DEF_VER=v0.0.1.PERF DEF_VER=v0.0.2.PERF LF=' LF=' ' ' Loading tools/perf/util/svghelper.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -103,7 +103,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end) fprintf(svgfile, " rect.process2 { fill:rgb(180,180,180); fill-opacity:0.9; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.process2 { fill:rgb(180,180,180); fill-opacity:0.9; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.sample { fill:rgb( 0, 0,255); fill-opacity:0.8; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.sample { fill:rgb( 0, 0,255); fill-opacity:0.8; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.blocked { fill:rgb(255, 0, 0); fill-opacity:0.5; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.blocked { fill:rgb(255, 0, 0); fill-opacity:0.5; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.waiting { fill:rgb(214,214, 0); fill-opacity:0.3; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.waiting { fill:rgb(224,214, 0); fill-opacity:0.8; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.WAITING { fill:rgb(255,214, 48); fill-opacity:0.6; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.WAITING { fill:rgb(255,214, 48); fill-opacity:0.6; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.cpu { fill:rgb(192,192,192); fill-opacity:0.2; stroke-width:0.5; stroke:rgb(128,128,128); } \n"); fprintf(svgfile, " rect.cpu { fill:rgb(192,192,192); fill-opacity:0.2; stroke-width:0.5; stroke:rgb(128,128,128); } \n"); fprintf(svgfile, " rect.pstate { fill:rgb(128,128,128); fill-opacity:0.8; stroke-width:0; } \n"); fprintf(svgfile, " rect.pstate { fill:rgb(128,128,128); fill-opacity:0.8; stroke-width:0; } \n"); Loading Loading
kernel/perf_event.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1356,7 +1356,7 @@ static void perf_ctx_adjust_freq(struct perf_event_context *ctx) u64 interrupts, freq; u64 interrupts, freq; spin_lock(&ctx->lock); spin_lock(&ctx->lock); list_for_each_entry(event, &ctx->group_list, group_entry) { list_for_each_entry_rcu(event, &ctx->event_list, event_entry) { if (event->state != PERF_EVENT_STATE_ACTIVE) if (event->state != PERF_EVENT_STATE_ACTIVE) continue; continue; Loading
tools/perf/builtin-timechart.c +26 −2 Original line number Original line Diff line number Diff line Loading @@ -765,19 +765,40 @@ static void draw_wakeups(void) if (c->Y && c->start_time <= we->time && c->end_time >= we->time) { if (c->Y && c->start_time <= we->time && c->end_time >= we->time) { if (p->pid == we->waker) { if (p->pid == we->waker) { from = c->Y; from = c->Y; task_from = c->comm; task_from = strdup(c->comm); } } if (p->pid == we->wakee) { if (p->pid == we->wakee) { to = c->Y; to = c->Y; task_to = c->comm; task_to = strdup(c->comm); } } } } c = c->next; c = c->next; } } c = p->all; while (c) { if (p->pid == we->waker && !from) { from = c->Y; task_from = strdup(c->comm); } if (p->pid == we->wakee && !to) { to = c->Y; task_to = strdup(c->comm); } c = c->next; } } } p = p->next; p = p->next; } } if (!task_from) { task_from = malloc(40); sprintf(task_from, "[%i]", we->waker); } if (!task_to) { task_to = malloc(40); sprintf(task_to, "[%i]", we->wakee); } if (we->waker == -1) if (we->waker == -1) svg_interrupt(we->time, to); svg_interrupt(we->time, to); else if (from && to && abs(from - to) == 1) else if (from && to && abs(from - to) == 1) Loading @@ -785,6 +806,9 @@ static void draw_wakeups(void) else else svg_partial_wakeline(we->time, from, task_from, to, task_to); svg_partial_wakeline(we->time, from, task_from, to, task_to); we = we->next; we = we->next; free(task_from); free(task_to); } } } } Loading
tools/perf/builtin-top.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -663,6 +663,8 @@ static void handle_keypress(int c) switch (c) { switch (c) { case 'd': case 'd': prompt_integer(&delay_secs, "Enter display delay"); prompt_integer(&delay_secs, "Enter display delay"); if (delay_secs < 1) delay_secs = 1; break; break; case 'e': case 'e': prompt_integer(&print_entries, "Enter display entries (lines)"); prompt_integer(&print_entries, "Enter display entries (lines)"); Loading
tools/perf/util/PERF-VERSION-GEN +1 −1 Original line number Original line Diff line number Diff line #!/bin/sh #!/bin/sh GVF=PERF-VERSION-FILE GVF=PERF-VERSION-FILE DEF_VER=v0.0.1.PERF DEF_VER=v0.0.2.PERF LF=' LF=' ' ' Loading
tools/perf/util/svghelper.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -103,7 +103,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end) fprintf(svgfile, " rect.process2 { fill:rgb(180,180,180); fill-opacity:0.9; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.process2 { fill:rgb(180,180,180); fill-opacity:0.9; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.sample { fill:rgb( 0, 0,255); fill-opacity:0.8; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.sample { fill:rgb( 0, 0,255); fill-opacity:0.8; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.blocked { fill:rgb(255, 0, 0); fill-opacity:0.5; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.blocked { fill:rgb(255, 0, 0); fill-opacity:0.5; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.waiting { fill:rgb(214,214, 0); fill-opacity:0.3; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.waiting { fill:rgb(224,214, 0); fill-opacity:0.8; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.WAITING { fill:rgb(255,214, 48); fill-opacity:0.6; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.WAITING { fill:rgb(255,214, 48); fill-opacity:0.6; stroke-width:0; stroke:rgb( 0, 0, 0); } \n"); fprintf(svgfile, " rect.cpu { fill:rgb(192,192,192); fill-opacity:0.2; stroke-width:0.5; stroke:rgb(128,128,128); } \n"); fprintf(svgfile, " rect.cpu { fill:rgb(192,192,192); fill-opacity:0.2; stroke-width:0.5; stroke:rgb(128,128,128); } \n"); fprintf(svgfile, " rect.pstate { fill:rgb(128,128,128); fill-opacity:0.8; stroke-width:0; } \n"); fprintf(svgfile, " rect.pstate { fill:rgb(128,128,128); fill-opacity:0.8; stroke-width:0; } \n"); Loading