lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y7Q6GnjKKhCVp1Zf@e126311.manchester.arm.com>
Date:   Tue, 3 Jan 2023 14:22:18 +0000
From:   Kajetan Puchalski <kajetan.puchalski@....com>
To:     rafael@...nel.org
Cc:     daniel.lezcano@...aro.org, lukasz.luba@....com,
        Dietmar.Eggemann@....com, dsmythies@...us.net,
        yu.chen.surf@...il.com, kajetan.puchalski@....com,
        linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH v5 0/2] cpuidle: teo: Introduce util-awareness

On Wed, Nov 30, 2022 at 03:32:02PM +0000, Kajetan Puchalski wrote:

Hi Rafael,

As it's been a while since the last email I wanted to bump this thread
and ask what you think about the last changes.

Additionally, I got some emails from the kernel test robot and noticed
that sched_cpu_util is contingent on CONFIG_SMP so in the current form
there's build errors on !SMP machines.

The following change should fix the problem, do you think it's all right to add?

@@ -207,10 +207,17 @@ static DEFINE_PER_CPU(struct teo_cpu, teo_cpus);
  * @dev: Target CPU
  * @cpu_data: Governor CPU data for the target CPU
  */
+#ifdef CONFIG_SMP
 static void teo_get_util(struct cpuidle_device *dev, struct teo_cpu *cpu_data)
 {
        cpu_data->utilized = sched_cpu_util(dev->cpu) > cpu_data->util_threshold;
 }
+#else
+static void teo_get_util(struct cpuidle_device *dev, struct teo_cpu *cpu_data)
+{
+       cpu_data->utilized = false;
+}
+#endif

Thanks in advance for your time,
Kajetan

> v4 -> v5:
> - remove the restriction to only apply the mechanism for C1 candidate state
> - clarify some code comments, fix comment style
> - refactor the fast-exit path loop implementation
> - move some cover letter information into the commit description
> 
> v3 -> v4:
> - remove the chunk of code skipping metrics updates when the CPU was utilized
> - include new test results and more benchmarks in the cover letter
> 
> v2 -> v3:
> - add a patch adding an option to skip polling states in teo_find_shallower_state()
> - only reduce the state if the candidate state is C1 and C0 is not a polling state
> - add a check for polling states in the 2-states fast-exit path
> - remove the ifdefs and Kconfig option
> 
> v1 -> v2:
> - rework the mechanism to reduce selected state by 1 instead of directly selecting C0 (suggested by Doug Smythies)
> - add a fast-exit path for systems with 2 idle states to not waste cycles on metrics when utilized
> - fix typos in comments
> - include a missing header
> 
> Kajetan Puchalski (2):
>   cpuidle: teo: Optionally skip polling states in teo_find_shallower_state()
>   cpuidle: teo: Introduce util-awareness
> 
>  drivers/cpuidle/governors/teo.c | 93 +++++++++++++++++++++++++++++++--
>  1 file changed, 89 insertions(+), 4 deletions(-)
> 
> -- 
> 2.37.1
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ