On Fri, Mar 11, 2016 at 11:28:00PM +0900, Namhyung Kim wrote:

SNIP

> > @@ -1694,7 +1695,7 @@ static void __ftrace_hash_rec_update(struct 
> > ftrace_ops *ops,
> >             if (inc) {
> >                     rec->flags++;
> >                     if (FTRACE_WARN_ON(ftrace_rec_count(rec) == 
> > FTRACE_REF_MAX))
> > -                           return;
> > +                           return false;
> >  
> >                     /*
> >                      * If there's only a single callback registered to a
> > @@ -1720,7 +1721,7 @@ static void __ftrace_hash_rec_update(struct 
> > ftrace_ops *ops,
> >                             rec->flags |= FTRACE_FL_REGS;
> >             } else {
> >                     if (FTRACE_WARN_ON(ftrace_rec_count(rec) == 0))
> > -                           return;
> > +                           return false;
> >                     rec->flags--;
> >  
> >                     /*
> > @@ -1753,22 +1754,27 @@ static void __ftrace_hash_rec_update(struct 
> > ftrace_ops *ops,
> >                      */
> >             }
> >             count++;
> > +
> > +           update |= ftrace_test_record(rec, 1) != FTRACE_UPDATE_IGNORE;
> 
> Shouldn't it use 'inc' instead of 1 for the second argument of
> the ftrace_test_record()?

I dont think so, 1 is to update calls (FTRACE_UPDATE_CALLS)
check ftrace_modify_all_code:

        if (command & FTRACE_UPDATE_CALLS)
                ftrace_replace_code(1);
        else if (command & FTRACE_DISABLE_CALLS)
                ftrace_replace_code(0);

both ftrace_startup, ftrace_shutdown use FTRACE_UPDATE_CALLS

you'd use 0 only to disable all, check ftrace_check_record comments:

        /*
         * If we are updating calls:
         *
         *   If the record has a ref count, then we need to enable it
         *   because someone is using it.
         *
         *   Otherwise we make sure its disabled.
         *
         * If we are disabling calls, then disable all records that
         * are enabled.
         */
        if (enable && ftrace_rec_count(rec))
                flag = FTRACE_FL_ENABLED;


used by ftrace_shutdown_sysctl

thanks,
jirka

Reply via email to