Hi Lukasz, On Mon, Nov 4, 2024 at 4:15 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > On Mon, Oct 28, 2024 at 2:41 PM Lukasz Luba <lukasz.luba@xxxxxxx> wrote: > > On 10/28/24 11:34, Geert Uytterhoeven wrote: > > > On Fri, Oct 25, 2024 at 5:40 PM Lukasz Luba <lukasz.luba@xxxxxxx> wrote: > > >> On 10/22/24 14:36, Geert Uytterhoeven wrote: > > >>> On Tue, Oct 8, 2024 at 11:14 AM Geert Uytterhoeven > > >>> <geert+renesas@xxxxxxxxx> wrote: > > >>>> When CONFIG_ENERGY_MODEL=y, an error is printed on RZ/G2E and R-Car E3: > > >>>> > > >>>> cpu cpu0: EM: invalid perf. state: -22 > > >>>> > > >>>> This happens because the Operating Points Parameters tables do not list > > >>>> voltages, as they are all identical. Previously, it was assumed they > > >>>> were optional, and unused, when none of the CPU nodes is tied to a > > >>>> regulator using the "cpu-supply" property. This assumption turned out > > >>>> to be incorrect, causing the reported error message. > > >>>> > > >>>> This RFC patch series fixes this by adding the missing voltages. > > >>>> > > >>>> Note that the Energy Model calculates energy efficiency by dividing the > > >>>> (estimated) CPU power consumption by CPU core clock frequency. When all > > >>>> voltages have the same value, the former is proportional to clock > > >>>> frequency, and energy efficiency becomes a constant. Hence all > > >>>> operating points are considered to have the same efficiency, and the > > >>>> Energy Model always picks the one with the highest clock rate (see also > > >>>> [1]). > > >>>> > > >>>> Alternatively, the Energy Model could be changed to silently ignore OPP > > >>>> tables with missing frequencies. IMHO this is not an unusual case. > > >>>> > > >>>> Which approach should be taken? > > >>>> Thanks for your comments! > > >>> > > >>> Any comments from the Energy Model and PM people? > > >> > > >> My apologies for delay. > > >> > > >> So you had issue with bogus Voltage values and removed them. > > >> > > >> There is another way to setup EM properly, via DT: > > >> "opp-microwatt" [1]. > > >> > > >> That micro watt value won't confuse other subsystems, like > > >> your regulator fwk. It will only be used by the EM fwk. > > >> > > >> This would be an alternative to your voltage values. > > >> Sounds better to you? > > > > > > For opp-microwatt, I do need to know the actual power consumption > > > of the core, right? > > > > Correct. You can try to derived that in a way you did and put below. > > Although, Dhrystone is a synthetic micro-benchmark with small > > impact to data caches, so it will not use much power. > > Do you have a suggestion for a better load test? stress-ng? > > > > Full system power consumption while running the in-kernel > > > Dhrystones benchmark: > > > > > > 800 MHz: avg 4972,55 mW, stdef 20,474 mW > > > 1000 MHz: avg 5025,93 mW, stdef 18,644 mW > > > 1200 MHz: avg 5059,63 mW, stdef 15,425 mW > > > > Right. From those power values can be try to derive the > > 'CPU only power' values - assuming only one core was > > running the test. > > > > AFAIU you don't have proper DVFS due to missing voltage scaling. > > Indeed. > > > Therefore... > > Out of that I got these CPU power values: > > 800MHz -> 174mW > > => 217.5 µW/MHz > > > 1000MHz -> 212mW > > => 212 µW/MHz > > > 1200MHz -> 261mW BTW, how did you get from my avg mW values above to your CPU power mW values? I seem to be missing something... > > => 217.5 µW/MHz. > > So 1000 MHz seems to be the most power-efficient. > > > > The system also has test points across a 0.005 Ohm sense resistor in > > > the DVFS power supply line, but no on-board measurement sensor (like > > > the MAX9611 on Salvator-X(S)), so I haven't measured anything > > > there yet. > > I'll try to do some measurements at these test points. So I measured the voltage across the sense resistor, and used that to calculate the actual power draw: A. Idle (1 or 2 CPU cores online doesn't seem to matter): - 765 mW @ 800 MHz, - 786 mW @ 1000 MHz, - 807 mW @ 1200 MHz. B. Maximum seen during "stress-ng -c 10" with 1 CPU core online: - 993 mW @ 800 MHz, - 1055 mW @ 1000 MHz, - 1096 mW @ 1200 MHz. C. Maximum seen during "stress-ng -c 10" with 2 CPU cores online: - 1179 mW @ 800 MHz, - 1303 mW @ 1000 MHz, - 1386 mW @ 1200 MHz. As expected, the A-C increase is about the double of the A-B increase, due to the use of 2 CPU cores. Thanks again! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds