lkml.org 
[lkml]   [2019]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v8 04/16] sched/core: uclamp: Add system default clamps
    On Tue, Apr 02, 2019 at 11:41:40AM +0100, Patrick Bellasi wrote:
    > +static inline struct uclamp_se
    > +uclamp_eff_get(struct task_struct *p, unsigned int clamp_id)
    > +{
    > + struct uclamp_se uc_req = p->uclamp_req[clamp_id];
    > + struct uclamp_se uc_max = uclamp_default[clamp_id];
    > +
    > + /* System default restrictions always apply */
    > + if (unlikely(uc_req.value > uc_max.value))
    > + return uc_max;
    > +
    > + return uc_req;
    > +}
    > +
    > +static inline unsigned int
    > +uclamp_eff_bucket_id(struct task_struct *p, unsigned int clamp_id)
    > +{
    > + struct uclamp_se uc_eff;
    > +
    > + /* Task currently refcounted: use back-annotated (effective) bucket */
    > + if (p->uclamp[clamp_id].active)
    > + return p->uclamp[clamp_id].bucket_id;
    > +
    > + uc_eff = uclamp_eff_get(p, clamp_id);
    > +
    > + return uc_eff.bucket_id;
    > +}
    > +
    > +unsigned int uclamp_eff_value(struct task_struct *p, unsigned int clamp_id)
    > +{
    > + struct uclamp_se uc_eff;
    > +
    > + /* Task currently refcounted: use back-annotated (effective) value */
    > + if (p->uclamp[clamp_id].active)
    > + return p->uclamp[clamp_id].value;
    > +
    > + uc_eff = uclamp_eff_get(p, clamp_id);
    > +
    > + return uc_eff.value;
    > +}

    This is 'wrong' because:

    uclamp_eff_value(p,id) := uclamp_eff(p,id).value

    Which seems to suggest the uclamp_eff_*() functions want another name.

    Also, suppose the above would be true; does GCC really generate better
    code for the LHS compared to the RHS?

    \
     
     \ /
      Last update: 2019-05-08 21:08    [W:4.107 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site