Re: [PATCH 6/7] clk: scmi: Allocate CLK operations dynamically
From: Stephen Boyd <sboyd@kernel.org>
Date: 2024-02-29 02:20:36
Also in:
linux-clk, lkml
Quoting Cristian Marussi (2024-02-22 00:28:41)
On Wed, Feb 21, 2024 at 09:44:14PM -0800, Stephen Boyd wrote:quoted
It's not great to move these function pointer structs out of RO memory to RW. I'm also not convinced that it's any better to construct them at runtime. Isn't there a constant set of possible clk configurations? Or why can't we simply add some failures to the clk_ops functions instead?Well, the real clock devices managed by the SCMI server can be a of
SCMI is a server!? :)
varying nature and so the minimum set of possible clk configurations to cover will amount to all the possible combinations of supported ops regarding the specific clock properties (i.e. .set_parent / .set_rate / .enable / .get/set_duty_cycle / atomic_capability ... for now)...we simply cannot know in advance what the backend SCMI server is handling. These seemed to me too much in number (and growing) to be pre-allocated in all possible combinations. (and mostly wasted since you dont really probably use all combinations all the time) Moreover, SCMI latest spec now exposes some clock properties (or not) to be able avoid even sending an actual SCMI message that we know will be denied all the time; one option is that we return an error,, as you said, but what is the point (I thought) to provide at all a clk-callback that we know upfront will fail to be executed every time ? (and some consumer drivers have been reported by partners not to be happy with these errors) What I think could be optimized here instead, and I will try in the next respin, it is that now I am allocating one set of custom ops for each clock at the end, even if exactly the same ops are provided since the clock capabilities are the same; I could instead allocate dynamically and fill only one single set of ops for each distinct set of combinations, so as to avoid useless duplication and use only the miminum strict amount of RW memory needed.
Yes please don't allocate a clk_op per clk. And, please add these answers to the commit text so that we know why it's not possible to know all combinations or fail clk_ops calls. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel