2017-06-29 12:11:14

by Arvind Yadav

[permalink] [raw]
Subject: [PATCH] kernel: cpu: hotplug: constify attribute_group structures.

attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by <linux/sysfs.h> work with const
attribute_group. So mark the non-const structs as const.

File size before:
text data bss dec hex filename
12582 15361 20 27963 6d3b kernel/cpu.o

File size After adding 'const':
text data bss dec hex filename
12710 15265 20 27995 6d5b kernel/cpu.o

Signed-off-by: Arvind Yadav <[email protected]>
---
kernel/cpu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/cpu.c b/kernel/cpu.c
index 9ae6fbe..45455f9 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -1684,7 +1684,7 @@ static ssize_t show_cpuhp_target(struct device *dev,
NULL
};

-static struct attribute_group cpuhp_cpu_attr_group = {
+static const struct attribute_group cpuhp_cpu_attr_group = {
.attrs = cpuhp_cpu_attrs,
.name = "hotplug",
NULL
@@ -1716,7 +1716,7 @@ static ssize_t show_cpuhp_states(struct device *dev,
NULL
};

-static struct attribute_group cpuhp_cpu_root_attr_group = {
+static const struct attribute_group cpuhp_cpu_root_attr_group = {
.attrs = cpuhp_cpu_root_attrs,
.name = "hotplug",
NULL
--
1.9.1


Subject: [tip:smp/hotplug] cpu/hotplug: Constify attribute_group structures

Commit-ID: 993647a293814dd47ae41d38657fda6e4ab04e33
Gitweb: http://git.kernel.org/tip/993647a293814dd47ae41d38657fda6e4ab04e33
Author: Arvind Yadav <[email protected]>
AuthorDate: Thu, 29 Jun 2017 17:40:47 +0530
Committer: Ingo Molnar <[email protected]>
CommitDate: Fri, 30 Jun 2017 09:34:39 +0200

cpu/hotplug: Constify attribute_group structures

attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by <linux/sysfs.h> work with const
attribute_group.

So mark the non-const structs as const:

File size before:
text data bss dec hex filename
12582 15361 20 27963 6d3b kernel/cpu.o

File size After adding 'const':
text data bss dec hex filename
12710 15265 20 27995 6d5b kernel/cpu.o

Signed-off-by: Arvind Yadav <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: http://lkml.kernel.org/r/f9079e94e12b36d245e7adbf67d312bc5d0250c6.1498737970.git.arvind.yadav.cs@gmail.com
Signed-off-by: Ingo Molnar <[email protected]>
---
kernel/cpu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/cpu.c b/kernel/cpu.c
index d0f5f54..b69c058 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -1629,7 +1629,7 @@ static struct attribute *cpuhp_cpu_attrs[] = {
NULL
};

-static struct attribute_group cpuhp_cpu_attr_group = {
+static const struct attribute_group cpuhp_cpu_attr_group = {
.attrs = cpuhp_cpu_attrs,
.name = "hotplug",
NULL
@@ -1661,7 +1661,7 @@ static struct attribute *cpuhp_cpu_root_attrs[] = {
NULL
};

-static struct attribute_group cpuhp_cpu_root_attr_group = {
+static const struct attribute_group cpuhp_cpu_root_attr_group = {
.attrs = cpuhp_cpu_root_attrs,
.name = "hotplug",
NULL

Subject: Re: [PATCH] kernel: cpu: hotplug: constify attribute_group structures.

On 2017-06-29 17:40:47 [+0530], Arvind Yadav wrote:
> attribute_groups are not supposed to change at runtime. All functions
> working with attribute_groups provided by <linux/sysfs.h> work with const
> attribute_group. So mark the non-const structs as const.
>
> File size before:
> text data bss dec hex filename
> 12582 15361 20 27963 6d3b kernel/cpu.o
>
> File size After adding 'const':
> text data bss dec hex filename
> 12710 15265 20 27995 6d5b kernel/cpu.o

While there does not seem to be anything wrong with it, why did the file
grow after the patch was applied?

> Signed-off-by: Arvind Yadav <[email protected]>

Sebastian

2017-07-10 07:30:11

by Arvind Yadav

[permalink] [raw]
Subject: Re: [PATCH] kernel: cpu: hotplug: constify attribute_group structures.

Hi Sebastian,


On Monday 10 July 2017 12:44 PM, Sebastian Andrzej Siewior wrote:
> On 2017-06-29 17:40:47 [+0530], Arvind Yadav wrote:
>> attribute_groups are not supposed to change at runtime. All functions
>> working with attribute_groups provided by <linux/sysfs.h> work with const
>> attribute_group. So mark the non-const structs as const.
>>
>> File size before:
>> text data bss dec hex filename
>> 12582 15361 20 27963 6d3b kernel/cpu.o
>>
>> File size After adding 'const':
>> text data bss dec hex filename
>> 12710 15265 20 27995 6d5b kernel/cpu.o
> While there does not seem to be anything wrong with it, why did the file
> grow after the patch was applied?
Yes, You are right. I have added few more changes for some experiment.
Which is increasing size of file. Sorry for that, Correct comparison
is this.
File size before:
text data bss dec hex filename
12909 15361 20 28290 6e82 kernel/cpu.o

File size After adding 'const':
text data bss dec hex filename
12973 15297 20 28290 6e82 kernel/cpu.o

I will send updated patch.
>> Signed-off-by: Arvind Yadav <[email protected]>
> Sebastian
Thanks
~arvind