Re: [PATCH v3 6/9] cpu/SMT: Allow enabling partial SMT states via sysfs

From: Laurent Dufour
Date: Wed Jul 05 2023 - 07:58:49 EST




Le 05/07/2023 à 05:14, Zhang, Rui a écrit :
On Thu, 2023-06-29 at 16:31 +0200, Laurent Dufour wrote:
@@ -2580,6 +2597,17 @@ static ssize_t control_show(struct device
*dev,
 {
        const char *state = smt_states[cpu_smt_control];
+#ifdef CONFIG_HOTPLUG_SMT
+       /*
+        * If SMT is enabled but not all threads are enabled then
show the
+        * number of threads. If all threads are enabled show "on".
Otherwise
+        * show the state name.
+        */
+       if (cpu_smt_control == CPU_SMT_ENABLED &&
+           cpu_smt_num_threads != cpu_smt_max_threads)
+               return sysfs_emit(buf, "%d\n", cpu_smt_num_threads);
+#endif
+

My understanding is that cpu_smt_control is always set to
CPU_SMT_NOT_IMPLEMENTED when CONFIG_HOTPLUG_SMT is not set, so this
ifdef is not necessary, right?

Hi Rui,

Indeed, cpu_smt_control, cpu_smt_num_threads and cpu_smt_max_threads are only defined when CONFIG_HOTPLUG_SMT is set. This is the reason for this #ifdef block.

This has been reported by the kernel test robot testing v2:
https://lore.kernel.org/oe-kbuild-all/202306282340.Ihqm0fLA-lkp@xxxxxxxxx

Cheers,
Laurent.