linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] cpu/hotplug: Create SMT sysfs interface for all arches
@ 2019-03-27 12:00 Josh Poimboeuf
  2019-04-02 10:40 ` [tip:smp/hotplug] " tip-bot for Josh Poimboeuf
  0 siblings, 1 reply; 3+ messages in thread
From: Josh Poimboeuf @ 2019-03-27 12:00 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: linux-kernel, x86, Andrea Arcangeli, Waiman Long, Peter Zijlstra,
	Jiri Kosina

Make the /sys/devices/system/cpu/smt/* files available on all arches, so
user space has a consistent way to detect whether SMT is enabled.

The 'control' file now shows 'notimplemented' for architectures which
don't yet have CONFIG_HOTPLUG_SMT.

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
---
v2: add "notimplemented" pseudo-state [tglx]

 .../ABI/testing/sysfs-devices-system-cpu      | 10 +--
 include/linux/cpu.h                           |  2 +-
 kernel/cpu.c                                  | 72 +++++++++++--------
 3 files changed, 51 insertions(+), 33 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
index 9605dbd4b5b5..5eea46fefcb2 100644
--- a/Documentation/ABI/testing/sysfs-devices-system-cpu
+++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
@@ -511,10 +511,12 @@ Description:	Control Symetric Multi Threading (SMT)
 		control: Read/write interface to control SMT. Possible
 			 values:
 
-			 "on"		SMT is enabled
-			 "off"		SMT is disabled
-			 "forceoff"	SMT is force disabled. Cannot be changed.
-			 "notsupported" SMT is not supported by the CPU
+			 "on"		  SMT is enabled
+			 "off"		  SMT is disabled
+			 "forceoff"	  SMT is force disabled. Cannot be changed.
+			 "notsupported"   SMT is not supported by the CPU
+			 "notimplemented" SMT runtime toggling is not
+					  implemented for the architecture
 
 			 If control status is "forceoff" or "notsupported" writes
 			 are rejected.
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 5041357d0297..296753249343 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -182,7 +182,7 @@ extern enum cpuhp_smt_control cpu_smt_control;
 extern void cpu_smt_disable(bool force);
 extern void cpu_smt_check_topology(void);
 #else
-# define cpu_smt_control		(CPU_SMT_ENABLED)
+# define cpu_smt_control		(CPU_SMT_NOT_SUPPORTED)
 static inline void cpu_smt_disable(bool force) { }
 static inline void cpu_smt_check_topology(void) { }
 #endif
diff --git a/kernel/cpu.c b/kernel/cpu.c
index f69ba38573c2..b0614263963b 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -2019,19 +2019,6 @@ static const struct attribute_group cpuhp_cpu_root_attr_group = {
 
 #ifdef CONFIG_HOTPLUG_SMT
 
-static const char *smt_states[] = {
-	[CPU_SMT_ENABLED]		= "on",
-	[CPU_SMT_DISABLED]		= "off",
-	[CPU_SMT_FORCE_DISABLED]	= "forceoff",
-	[CPU_SMT_NOT_SUPPORTED]		= "notsupported",
-};
-
-static ssize_t
-show_smt_control(struct device *dev, struct device_attribute *attr, char *buf)
-{
-	return snprintf(buf, PAGE_SIZE - 2, "%s\n", smt_states[cpu_smt_control]);
-}
-
 static void cpuhp_offline_cpu_device(unsigned int cpu)
 {
 	struct device *dev = get_cpu_device(cpu);
@@ -2102,9 +2089,10 @@ static int cpuhp_smt_enable(void)
 	return ret;
 }
 
+
 static ssize_t
-store_smt_control(struct device *dev, struct device_attribute *attr,
-		  const char *buf, size_t count)
+__store_smt_control(struct device *dev, struct device_attribute *attr,
+		    const char *buf, size_t count)
 {
 	int ctrlval, ret;
 
@@ -2120,9 +2108,6 @@ store_smt_control(struct device *dev, struct device_attribute *attr,
 	if (cpu_smt_control == CPU_SMT_FORCE_DISABLED)
 		return -EPERM;
 
-	if (cpu_smt_control == CPU_SMT_NOT_SUPPORTED)
-		return -ENODEV;
-
 	ret = lock_device_hotplug_sysfs();
 	if (ret)
 		return ret;
@@ -2142,14 +2127,49 @@ store_smt_control(struct device *dev, struct device_attribute *attr,
 	unlock_device_hotplug();
 	return ret ? ret : count;
 }
+
+#else /* !CONFIG_HOTPLUG_SMT */
+static ssize_t
+__store_smt_control(struct device *dev, struct device_attribute *attr,
+		    const char *buf, size_t count)
+{
+	return 0;
+}
+#endif /* CONFIG_HOTPLUG_SMT */
+
+static const char *smt_states[] = {
+	[CPU_SMT_ENABLED]		= "on",
+	[CPU_SMT_DISABLED]		= "off",
+	[CPU_SMT_FORCE_DISABLED]	= "forceoff",
+	[CPU_SMT_NOT_SUPPORTED]		= "notsupported",
+};
+
+static ssize_t
+show_smt_control(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	const char *state = IS_ENABLED(CONFIG_HOTPLUG_SMT) ?
+				smt_states[cpu_smt_control] :
+				"notimplemented";
+
+	return snprintf(buf, PAGE_SIZE - 2, "%s\n", state);
+}
+
+static ssize_t
+store_smt_control(struct device *dev, struct device_attribute *attr,
+		  const char *buf, size_t count)
+{
+
+	if (cpu_smt_control == CPU_SMT_NOT_SUPPORTED)
+		return -ENODEV;
+
+	return __store_smt_control(dev, attr, buf, count);
+}
 static DEVICE_ATTR(control, 0644, show_smt_control, store_smt_control);
 
 static ssize_t
 show_smt_active(struct device *dev, struct device_attribute *attr, char *buf)
 {
-	bool active = topology_max_smt_threads() > 1;
-
-	return snprintf(buf, PAGE_SIZE - 2, "%d\n", active);
+	return snprintf(buf, PAGE_SIZE - 2, "%d\n", sched_smt_active());
 }
 static DEVICE_ATTR(active, 0444, show_smt_active, NULL);
 
@@ -2165,21 +2185,17 @@ static const struct attribute_group cpuhp_smt_attr_group = {
 	NULL
 };
 
-static int __init cpu_smt_state_init(void)
+static int __init cpu_smt_sysfs_init(void)
 {
 	return sysfs_create_group(&cpu_subsys.dev_root->kobj,
 				  &cpuhp_smt_attr_group);
 }
 
-#else
-static inline int cpu_smt_state_init(void) { return 0; }
-#endif
-
 static int __init cpuhp_sysfs_init(void)
 {
 	int cpu, ret;
 
-	ret = cpu_smt_state_init();
+	ret = cpu_smt_sysfs_init();
 	if (ret)
 		return ret;
 
@@ -2200,7 +2216,7 @@ static int __init cpuhp_sysfs_init(void)
 	return 0;
 }
 device_initcall(cpuhp_sysfs_init);
-#endif
+#endif /* CONFIG_SYSFS && CONFIG_HOTPLUG_CPU */
 
 /*
  * cpu_bit_bitmap[] is a special, "compressed" data structure that
-- 
2.17.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [tip:smp/hotplug] cpu/hotplug: Create SMT sysfs interface for all arches
  2019-03-27 12:00 [PATCH v2] cpu/hotplug: Create SMT sysfs interface for all arches Josh Poimboeuf
@ 2019-04-02 10:40 ` tip-bot for Josh Poimboeuf
  2019-04-02 13:31   ` Josh Poimboeuf
  0 siblings, 1 reply; 3+ messages in thread
From: tip-bot for Josh Poimboeuf @ 2019-04-02 10:40 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: aarcange, hpa, tglx, jpoimboe, mingo, jikos, peterz,
	linux-kernel, longman

Commit-ID:  de7b77e5bb9451417ca57f1b6501da654587c048
Gitweb:     https://git.kernel.org/tip/de7b77e5bb9451417ca57f1b6501da654587c048
Author:     Josh Poimboeuf <jpoimboe@redhat.com>
AuthorDate: Wed, 27 Mar 2019 07:00:29 -0500
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 2 Apr 2019 12:36:56 +0200

cpu/hotplug: Create SMT sysfs interface for all arches

Make the /sys/devices/system/cpu/smt/* files available on all arches, so
user space has a consistent way to detect whether SMT is enabled.

The 'control' file now shows 'notimplemented' for architectures which
don't yet have CONFIG_HOTPLUG_SMT.

[ tglx: Make notimplemented a real state ]

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Waiman Long <longman@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Jiri Kosina <jikos@kernel.org>
Link: https://lkml.kernel.org/r/469c2b98055f2c41e75748e06447d592a64080c9.1553635520.git.jpoimboe@redhat.com

---
 Documentation/ABI/testing/sysfs-devices-system-cpu | 10 ++--
 include/linux/cpu.h                                |  3 +-
 kernel/cpu.c                                       | 64 +++++++++++++---------
 3 files changed, 47 insertions(+), 30 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
index 9605dbd4b5b5..5eea46fefcb2 100644
--- a/Documentation/ABI/testing/sysfs-devices-system-cpu
+++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
@@ -511,10 +511,12 @@ Description:	Control Symetric Multi Threading (SMT)
 		control: Read/write interface to control SMT. Possible
 			 values:
 
-			 "on"		SMT is enabled
-			 "off"		SMT is disabled
-			 "forceoff"	SMT is force disabled. Cannot be changed.
-			 "notsupported" SMT is not supported by the CPU
+			 "on"		  SMT is enabled
+			 "off"		  SMT is disabled
+			 "forceoff"	  SMT is force disabled. Cannot be changed.
+			 "notsupported"   SMT is not supported by the CPU
+			 "notimplemented" SMT runtime toggling is not
+					  implemented for the architecture
 
 			 If control status is "forceoff" or "notsupported" writes
 			 are rejected.
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 5041357d0297..ae99dde02320 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -175,6 +175,7 @@ enum cpuhp_smt_control {
 	CPU_SMT_DISABLED,
 	CPU_SMT_FORCE_DISABLED,
 	CPU_SMT_NOT_SUPPORTED,
+	CPU_SMT_NOT_IMPLEMENTED,
 };
 
 #if defined(CONFIG_SMP) && defined(CONFIG_HOTPLUG_SMT)
@@ -182,7 +183,7 @@ extern enum cpuhp_smt_control cpu_smt_control;
 extern void cpu_smt_disable(bool force);
 extern void cpu_smt_check_topology(void);
 #else
-# define cpu_smt_control		(CPU_SMT_ENABLED)
+# define cpu_smt_control		(CPU_SMT_NOT_IMPLEMENTED)
 static inline void cpu_smt_disable(bool force) { }
 static inline void cpu_smt_check_topology(void) { }
 #endif
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 6754f3ecfd94..b8bf3f93e39b 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -2033,19 +2033,6 @@ static const struct attribute_group cpuhp_cpu_root_attr_group = {
 
 #ifdef CONFIG_HOTPLUG_SMT
 
-static const char *smt_states[] = {
-	[CPU_SMT_ENABLED]		= "on",
-	[CPU_SMT_DISABLED]		= "off",
-	[CPU_SMT_FORCE_DISABLED]	= "forceoff",
-	[CPU_SMT_NOT_SUPPORTED]		= "notsupported",
-};
-
-static ssize_t
-show_smt_control(struct device *dev, struct device_attribute *attr, char *buf)
-{
-	return snprintf(buf, PAGE_SIZE - 2, "%s\n", smt_states[cpu_smt_control]);
-}
-
 static void cpuhp_offline_cpu_device(unsigned int cpu)
 {
 	struct device *dev = get_cpu_device(cpu);
@@ -2116,9 +2103,10 @@ static int cpuhp_smt_enable(void)
 	return ret;
 }
 
+
 static ssize_t
-store_smt_control(struct device *dev, struct device_attribute *attr,
-		  const char *buf, size_t count)
+__store_smt_control(struct device *dev, struct device_attribute *attr,
+		    const char *buf, size_t count)
 {
 	int ctrlval, ret;
 
@@ -2156,14 +2144,44 @@ store_smt_control(struct device *dev, struct device_attribute *attr,
 	unlock_device_hotplug();
 	return ret ? ret : count;
 }
+
+#else /* !CONFIG_HOTPLUG_SMT */
+static ssize_t
+__store_smt_control(struct device *dev, struct device_attribute *attr,
+		    const char *buf, size_t count)
+{
+	return -ENODEV;
+}
+#endif /* CONFIG_HOTPLUG_SMT */
+
+static const char *smt_states[] = {
+	[CPU_SMT_ENABLED]		= "on",
+	[CPU_SMT_DISABLED]		= "off",
+	[CPU_SMT_FORCE_DISABLED]	= "forceoff",
+	[CPU_SMT_NOT_SUPPORTED]		= "notsupported",
+	[CPU_SMT_NOT_IMPLEMENTED]	= "notimplemented",
+};
+
+static ssize_t
+show_smt_control(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	const char *state = smt_states[cpu_smt_control];
+
+	return snprintf(buf, PAGE_SIZE - 2, "%s\n", state);
+}
+
+static ssize_t
+store_smt_control(struct device *dev, struct device_attribute *attr,
+		  const char *buf, size_t count)
+{
+	return __store_smt_control(dev, attr, buf, count);
+}
 static DEVICE_ATTR(control, 0644, show_smt_control, store_smt_control);
 
 static ssize_t
 show_smt_active(struct device *dev, struct device_attribute *attr, char *buf)
 {
-	bool active = topology_max_smt_threads() > 1;
-
-	return snprintf(buf, PAGE_SIZE - 2, "%d\n", active);
+	return snprintf(buf, PAGE_SIZE - 2, "%d\n", sched_smt_active());
 }
 static DEVICE_ATTR(active, 0444, show_smt_active, NULL);
 
@@ -2179,21 +2197,17 @@ static const struct attribute_group cpuhp_smt_attr_group = {
 	NULL
 };
 
-static int __init cpu_smt_state_init(void)
+static int __init cpu_smt_sysfs_init(void)
 {
 	return sysfs_create_group(&cpu_subsys.dev_root->kobj,
 				  &cpuhp_smt_attr_group);
 }
 
-#else
-static inline int cpu_smt_state_init(void) { return 0; }
-#endif
-
 static int __init cpuhp_sysfs_init(void)
 {
 	int cpu, ret;
 
-	ret = cpu_smt_state_init();
+	ret = cpu_smt_sysfs_init();
 	if (ret)
 		return ret;
 
@@ -2214,7 +2228,7 @@ static int __init cpuhp_sysfs_init(void)
 	return 0;
 }
 device_initcall(cpuhp_sysfs_init);
-#endif
+#endif /* CONFIG_SYSFS && CONFIG_HOTPLUG_CPU */
 
 /*
  * cpu_bit_bitmap[] is a special, "compressed" data structure that

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [tip:smp/hotplug] cpu/hotplug: Create SMT sysfs interface for all arches
  2019-04-02 10:40 ` [tip:smp/hotplug] " tip-bot for Josh Poimboeuf
@ 2019-04-02 13:31   ` Josh Poimboeuf
  0 siblings, 0 replies; 3+ messages in thread
From: Josh Poimboeuf @ 2019-04-02 13:31 UTC (permalink / raw)
  To: tip-bot for Josh Poimboeuf
  Cc: linux-tip-commits, aarcange, hpa, tglx, mingo, jikos, peterz,
	linux-kernel, longman

On Tue, Apr 02, 2019 at 03:40:06AM -0700, tip-bot for Josh Poimboeuf wrote:
> Commit-ID:  de7b77e5bb9451417ca57f1b6501da654587c048
> Gitweb:     https://git.kernel.org/tip/de7b77e5bb9451417ca57f1b6501da654587c048
> Author:     Josh Poimboeuf <jpoimboe@redhat.com>
> AuthorDate: Wed, 27 Mar 2019 07:00:29 -0500
> Committer:  Thomas Gleixner <tglx@linutronix.de>
> CommitDate: Tue, 2 Apr 2019 12:36:56 +0200
> 
> cpu/hotplug: Create SMT sysfs interface for all arches
> 
> Make the /sys/devices/system/cpu/smt/* files available on all arches, so
> user space has a consistent way to detect whether SMT is enabled.
> 
> The 'control' file now shows 'notimplemented' for architectures which
> don't yet have CONFIG_HOTPLUG_SMT.
> 
> [ tglx: Make notimplemented a real state ]

Yes, that's better.  Thanks!

> 
> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Andrea Arcangeli <aarcange@redhat.com>
> Cc: Waiman Long <longman@redhat.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Jiri Kosina <jikos@kernel.org>
> Link: https://lkml.kernel.org/r/469c2b98055f2c41e75748e06447d592a64080c9.1553635520.git.jpoimboe@redhat.com
> 
> ---
>  Documentation/ABI/testing/sysfs-devices-system-cpu | 10 ++--
>  include/linux/cpu.h                                |  3 +-
>  kernel/cpu.c                                       | 64 +++++++++++++---------
>  3 files changed, 47 insertions(+), 30 deletions(-)
> 
> diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
> index 9605dbd4b5b5..5eea46fefcb2 100644
> --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
> +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
> @@ -511,10 +511,12 @@ Description:	Control Symetric Multi Threading (SMT)
>  		control: Read/write interface to control SMT. Possible
>  			 values:
>  
> -			 "on"		SMT is enabled
> -			 "off"		SMT is disabled
> -			 "forceoff"	SMT is force disabled. Cannot be changed.
> -			 "notsupported" SMT is not supported by the CPU
> +			 "on"		  SMT is enabled
> +			 "off"		  SMT is disabled
> +			 "forceoff"	  SMT is force disabled. Cannot be changed.
> +			 "notsupported"   SMT is not supported by the CPU
> +			 "notimplemented" SMT runtime toggling is not
> +					  implemented for the architecture
>  
>  			 If control status is "forceoff" or "notsupported" writes
>  			 are rejected.
> diff --git a/include/linux/cpu.h b/include/linux/cpu.h
> index 5041357d0297..ae99dde02320 100644
> --- a/include/linux/cpu.h
> +++ b/include/linux/cpu.h
> @@ -175,6 +175,7 @@ enum cpuhp_smt_control {
>  	CPU_SMT_DISABLED,
>  	CPU_SMT_FORCE_DISABLED,
>  	CPU_SMT_NOT_SUPPORTED,
> +	CPU_SMT_NOT_IMPLEMENTED,
>  };
>  
>  #if defined(CONFIG_SMP) && defined(CONFIG_HOTPLUG_SMT)
> @@ -182,7 +183,7 @@ extern enum cpuhp_smt_control cpu_smt_control;
>  extern void cpu_smt_disable(bool force);
>  extern void cpu_smt_check_topology(void);
>  #else
> -# define cpu_smt_control		(CPU_SMT_ENABLED)
> +# define cpu_smt_control		(CPU_SMT_NOT_IMPLEMENTED)
>  static inline void cpu_smt_disable(bool force) { }
>  static inline void cpu_smt_check_topology(void) { }
>  #endif
> diff --git a/kernel/cpu.c b/kernel/cpu.c
> index 6754f3ecfd94..b8bf3f93e39b 100644
> --- a/kernel/cpu.c
> +++ b/kernel/cpu.c
> @@ -2033,19 +2033,6 @@ static const struct attribute_group cpuhp_cpu_root_attr_group = {
>  
>  #ifdef CONFIG_HOTPLUG_SMT
>  
> -static const char *smt_states[] = {
> -	[CPU_SMT_ENABLED]		= "on",
> -	[CPU_SMT_DISABLED]		= "off",
> -	[CPU_SMT_FORCE_DISABLED]	= "forceoff",
> -	[CPU_SMT_NOT_SUPPORTED]		= "notsupported",
> -};
> -
> -static ssize_t
> -show_smt_control(struct device *dev, struct device_attribute *attr, char *buf)
> -{
> -	return snprintf(buf, PAGE_SIZE - 2, "%s\n", smt_states[cpu_smt_control]);
> -}
> -
>  static void cpuhp_offline_cpu_device(unsigned int cpu)
>  {
>  	struct device *dev = get_cpu_device(cpu);
> @@ -2116,9 +2103,10 @@ static int cpuhp_smt_enable(void)
>  	return ret;
>  }
>  
> +
>  static ssize_t
> -store_smt_control(struct device *dev, struct device_attribute *attr,
> -		  const char *buf, size_t count)
> +__store_smt_control(struct device *dev, struct device_attribute *attr,
> +		    const char *buf, size_t count)
>  {
>  	int ctrlval, ret;
>  
> @@ -2156,14 +2144,44 @@ store_smt_control(struct device *dev, struct device_attribute *attr,
>  	unlock_device_hotplug();
>  	return ret ? ret : count;
>  }
> +
> +#else /* !CONFIG_HOTPLUG_SMT */
> +static ssize_t
> +__store_smt_control(struct device *dev, struct device_attribute *attr,
> +		    const char *buf, size_t count)
> +{
> +	return -ENODEV;
> +}
> +#endif /* CONFIG_HOTPLUG_SMT */
> +
> +static const char *smt_states[] = {
> +	[CPU_SMT_ENABLED]		= "on",
> +	[CPU_SMT_DISABLED]		= "off",
> +	[CPU_SMT_FORCE_DISABLED]	= "forceoff",
> +	[CPU_SMT_NOT_SUPPORTED]		= "notsupported",
> +	[CPU_SMT_NOT_IMPLEMENTED]	= "notimplemented",
> +};
> +
> +static ssize_t
> +show_smt_control(struct device *dev, struct device_attribute *attr, char *buf)
> +{
> +	const char *state = smt_states[cpu_smt_control];
> +
> +	return snprintf(buf, PAGE_SIZE - 2, "%s\n", state);
> +}
> +
> +static ssize_t
> +store_smt_control(struct device *dev, struct device_attribute *attr,
> +		  const char *buf, size_t count)
> +{
> +	return __store_smt_control(dev, attr, buf, count);
> +}
>  static DEVICE_ATTR(control, 0644, show_smt_control, store_smt_control);
>  
>  static ssize_t
>  show_smt_active(struct device *dev, struct device_attribute *attr, char *buf)
>  {
> -	bool active = topology_max_smt_threads() > 1;
> -
> -	return snprintf(buf, PAGE_SIZE - 2, "%d\n", active);
> +	return snprintf(buf, PAGE_SIZE - 2, "%d\n", sched_smt_active());
>  }
>  static DEVICE_ATTR(active, 0444, show_smt_active, NULL);
>  
> @@ -2179,21 +2197,17 @@ static const struct attribute_group cpuhp_smt_attr_group = {
>  	NULL
>  };
>  
> -static int __init cpu_smt_state_init(void)
> +static int __init cpu_smt_sysfs_init(void)
>  {
>  	return sysfs_create_group(&cpu_subsys.dev_root->kobj,
>  				  &cpuhp_smt_attr_group);
>  }
>  
> -#else
> -static inline int cpu_smt_state_init(void) { return 0; }
> -#endif
> -
>  static int __init cpuhp_sysfs_init(void)
>  {
>  	int cpu, ret;
>  
> -	ret = cpu_smt_state_init();
> +	ret = cpu_smt_sysfs_init();
>  	if (ret)
>  		return ret;
>  
> @@ -2214,7 +2228,7 @@ static int __init cpuhp_sysfs_init(void)
>  	return 0;
>  }
>  device_initcall(cpuhp_sysfs_init);
> -#endif
> +#endif /* CONFIG_SYSFS && CONFIG_HOTPLUG_CPU */
>  
>  /*
>   * cpu_bit_bitmap[] is a special, "compressed" data structure that

-- 
Josh

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-04-02 13:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-27 12:00 [PATCH v2] cpu/hotplug: Create SMT sysfs interface for all arches Josh Poimboeuf
2019-04-02 10:40 ` [tip:smp/hotplug] " tip-bot for Josh Poimboeuf
2019-04-02 13:31   ` Josh Poimboeuf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).