Messages in this thread | | | Subject | Re: [PATCH v2 3/3] PM / EM: Skip inefficient OPPs | From | Lukasz Luba <> | Date | Tue, 25 May 2021 12:03:14 +0100 |
| |
On 5/25/21 10:46 AM, Vincent Donnefort wrote: > On Tue, May 25, 2021 at 09:33:01AM +0000, Quentin Perret wrote: >> On Friday 21 May 2021 at 17:54:24 (+0100), Vincent Donnefort wrote: >>> @@ -161,6 +162,8 @@ static int em_create_perf_table(struct device *dev, struct em_perf_domain *pd, >>> table[i].cost = div64_u64(fmax * table[i].power, >>> table[i].frequency); >>> if (table[i].cost >= prev_cost) { >>> + table[i].flags = EM_PERF_STATE_INEFFICIENT; >>> + pd->flags |= EM_PERF_DOMAIN_INEFFICIENCIES; >> >> If we're looking for micro-optimizations, then perhaps you could store >> the index of the next efficient OPP (which would be 'i' if the current >> OPP is already efficient), so you can jump to it directly when doing the >> search. > > Wouldn't add any new field compared to this version so yeah might be an > interesting improvement. >
That's a few more instructions to parse the 'flags' filed. I'm not sure if that brings speed improvements vs. if we not parse and have bool filed with a simple looping. The out-of-order core might even suffer from this parsing and loop index manipulations...
| |