Messages in this thread | | | Date | Tue, 6 Feb 2024 13:55:13 +0000 | Subject | Re: [PATCH v7 12/23] PM: EM: Add em_perf_state_from_pd() to get performance states table | From | Lukasz Luba <> |
| |
On 1/29/24 18:13, Dietmar Eggemann wrote: > On 17/01/2024 10:57, Lukasz Luba wrote: > > [...] > >> diff --git a/include/linux/energy_model.h b/include/linux/energy_model.h >> index 494df6942cf7..5ebe9dbec8e1 100644 >> --- a/include/linux/energy_model.h >> +++ b/include/linux/energy_model.h >> @@ -339,6 +339,23 @@ static inline int em_pd_nr_perf_states(struct em_perf_domain *pd) >> return pd->nr_perf_states; >> } >> >> +/** >> + * em_perf_state_from_pd() - Get the performance states table of perf. >> + * domain >> + * @pd : performance domain for which this must be done >> + * >> + * To use this function the rcu_read_lock() should be hold. After the usage >> + * of the performance states table is finished, the rcu_read_unlock() should >> + * be called. >> + * >> + * Return: the pointer to performance states table of the performance domain >> + */ >> +static inline >> +struct em_perf_state *em_perf_state_from_pd(struct em_perf_domain *pd) > > This is IMHO hard to get since: > > struct em_perf_table { > struct rcu_head rcu; > struct kref kref; > struct em_perf_state state[]; > }; > > So very often a 'struct em_perf_table' is named 'table' and 'struct > em_perf_table::state' as well. E.g. in em_adjust_new_capacity(). > > struct em_perf_state *new_table; > > new_table = em_table->state; > > In older EM code, we used 'struct em_perf_state *ps' to avoid this > confusion, I guess. > > And what you get from the PD is actually a state vector so maybe: > > struct em_perf_state *em_get_perf_states(struct em_perf_domain *pd) > > The 'from_pd' seems obvious because of the parameter?
Rafael proposed that function name in his review comments, so I followed. I might address your comment about the: 'struct em_perf_state *ps' while I will do re-basing and sending v8.
| |