Em Fri, Aug 07, 2020 at 01:50:47PM -0600, David Ahern escreveu:
> On 8/7/20 1:43 PM, Arnaldo Carvalho de Melo wrote:
> >> @@ -2958,9 +2967,10 @@ static int timehist_check_attr(struct perf_sched 
> >> *sched,
> >>  
> >>  static int perf_sched__timehist(struct perf_sched *sched)
> >>  {
> >> -  const struct evsel_str_handler handlers[] = {
> >> +  struct evsel_str_handler handlers[] = {
> >>            { "sched:sched_switch",       timehist_sched_switch_event, },
> >>            { "sched:sched_wakeup",       timehist_sched_wakeup_event, },
> >> +          { "sched:sched_waking",       timehist_sched_wakeup_event, },
> >>            { "sched:sched_wakeup_new",   timehist_sched_wakeup_event, },
> >>    };
> >>    const struct evsel_str_handler migrate_handlers[] = {
> >> @@ -3018,6 +3028,11 @@ static int perf_sched__timehist(struct perf_sched 
> >> *sched)
> >>  
> >>    setup_pager();
> >>  
> >> +  /* prefer sched_waking if it is captured */
> >> +  if (perf_evlist__find_tracepoint_by_name(session->evlist,
> >> +                                            "sched:sched_waking"))
> >> +          handlers[1].handler = timehist_sched_wakeup_ignore;
> >> +
> > 
> > 
> > ouch, can't we figure out if its present and then don't ask for the
> > wakeup one to be recorded?
> > 
> 
> This is the analysis side. If someone recorded with sched:* we do not
> want to analyze both sched_wakeup and sched_waking. Rather, it should
> prefer the latter and ignore the former.

Right you are, thans for the explanation, I should've noticed that :)

- Arnaldoi

Reply via email to