On Thu, Sep 20, 2018 at 08:58:16PM +0800, Wei Wang wrote: > On 09/20/2018 08:37 PM, Peter Zijlstra wrote: > > On Thu, Sep 20, 2018 at 06:05:59PM +0800, Wei Wang wrote: > > > /** > > > + * lbr_select_user_callstack - check if the user callstack mode is set > > > + * > > > + * @lbr_select: the lbr select msr > > > + * > > > + * Returns: true if the msr is configured to the user callstack mode. > > > + * Otherwise, false. > > > + * > > > + */ > > > +bool lbr_select_user_callstack(u64 lbr_select) > > > +{ > > > + return !!(lbr_select & LBR_USER_CALLSTACK); > > > +} > > > +EXPORT_SYMBOL_GPL(lbr_select_user_callstack); > > That function is pure and tiny, wth is that an exported symbol and not > > an inline? > Thanks Peter for the comments. > > Because this function uses the LBR_ macros which are defined in this lbr.c > file. > Do you think it would be OK to move all the above LBR_ macros to > asm/perf_event.h? Sure.