Messages in this thread | | | Date | Sat, 12 Mar 2016 17:35:02 +0900 | From | Namhyung Kim <> | Subject | Re: [PATCH 4/5] ftrace: Make ftrace_hash_rec_enable return update bool |
| |
Hi Jiri,
On Fri, Mar 11, 2016 at 07:15:06PM +0100, Jiri Olsa wrote: > 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
Ah, ok. So the second argument of the ftrace_test_record() is not 'enable' actually.. :-/
> > 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
I got it. Thank you for the explanation!
Thanks, Namhyung
| |