public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] zram: constify attribute_group structures.
@ 2017-07-03  6:13 Arvind Yadav
  2017-07-03  6:27 ` Minchan Kim
  2017-07-03  9:00 ` Sergey Senozhatsky
  0 siblings, 2 replies; 6+ messages in thread
From: Arvind Yadav @ 2017-07-03  6:13 UTC (permalink / raw)
  To: minchan, ngupta; +Cc: sergey.senozhatsky.work, linux-kernel

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
   8293	    841	      4	   9138	   23b2	drivers/block/zram/zram_drv.o

File size After adding 'const':
   text	   data	    bss	    dec	    hex	filename
   8357	    777	      4	   9138	   23b2	drivers/block/zram/zram_drv.o

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
---
 drivers/block/zram/zram_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index debee95..5da5c04 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -1122,7 +1122,7 @@ static int zram_open(struct block_device *bdev, fmode_t mode)
 	NULL,
 };
 
-static struct attribute_group zram_disk_attr_group = {
+static const struct attribute_group zram_disk_attr_group = {
 	.attrs = zram_disk_attrs,
 };
 
-- 
1.9.1

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

* Re: [PATCH] zram: constify attribute_group structures.
  2017-07-03  6:13 [PATCH] zram: constify attribute_group structures Arvind Yadav
@ 2017-07-03  6:27 ` Minchan Kim
  2017-07-03  7:18   ` Arvind Yadav
  2017-07-03  9:00 ` Sergey Senozhatsky
  1 sibling, 1 reply; 6+ messages in thread
From: Minchan Kim @ 2017-07-03  6:27 UTC (permalink / raw)
  To: Arvind Yadav, Andrew Morton; +Cc: ngupta, sergey.senozhatsky.work, linux-kernel

Hello,

On Mon, Jul 03, 2017 at 11:43:13AM +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.

If so, how about changing all of places where not have used const
as well as zram?

Anyway, I'm okay with this.

> 
> File size before:
>    text	   data	    bss	    dec	    hex	filename
>    8293	    841	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
> 
> File size After adding 'const':
>    text	   data	    bss	    dec	    hex	filename
>    8357	    777	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
> 
> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Acked-by: Minchan Kim <minchan@kernel.org>

Thanks.

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

* Re: [PATCH] zram: constify attribute_group structures.
  2017-07-03  6:27 ` Minchan Kim
@ 2017-07-03  7:18   ` Arvind Yadav
  0 siblings, 0 replies; 6+ messages in thread
From: Arvind Yadav @ 2017-07-03  7:18 UTC (permalink / raw)
  To: Minchan Kim, Andrew Morton; +Cc: ngupta, sergey.senozhatsky.work, linux-kernel

Hi,


On Monday 03 July 2017 11:57 AM, Minchan Kim wrote:
> Hello,
>
> On Mon, Jul 03, 2017 at 11:43:13AM +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.
> If so, how about changing all of places where not have used const
> as well as zram?
      Sure, I am going to change other place also.
>
> Anyway, I'm okay with this.
>
>> File size before:
>>     text	   data	    bss	    dec	    hex	filename
>>     8293	    841	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
>>
>> File size After adding 'const':
>>     text	   data	    bss	    dec	    hex	filename
>>     8357	    777	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
>>
>> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
> Acked-by: Minchan Kim <minchan@kernel.org>
>
> Thanks.
Thanks,
~arvind

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

* Re: [PATCH] zram: constify attribute_group structures.
  2017-07-03  6:13 [PATCH] zram: constify attribute_group structures Arvind Yadav
  2017-07-03  6:27 ` Minchan Kim
@ 2017-07-03  9:00 ` Sergey Senozhatsky
  2017-07-03 10:30   ` Arvind Yadav
  1 sibling, 1 reply; 6+ messages in thread
From: Sergey Senozhatsky @ 2017-07-03  9:00 UTC (permalink / raw)
  To: Arvind Yadav; +Cc: minchan, ngupta, sergey.senozhatsky.work, linux-kernel

On (07/03/17 11:43), 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
>    8293	    841	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
> 
> File size After adding 'const':
>    text	   data	    bss	    dec	    hex	filename
>    8357	    777	      4	   9138	   23b2	drivers/block/zram/zram_drv.o

sorry, what exactly is the improvement here?
we grew .text bigger, why should we be happy about it?

	-ss

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

* Re: [PATCH] zram: constify attribute_group structures.
  2017-07-03  9:00 ` Sergey Senozhatsky
@ 2017-07-03 10:30   ` Arvind Yadav
  2017-07-03 12:04     ` Sergey Senozhatsky
  0 siblings, 1 reply; 6+ messages in thread
From: Arvind Yadav @ 2017-07-03 10:30 UTC (permalink / raw)
  To: Sergey Senozhatsky; +Cc: minchan, ngupta, linux-kernel

Hi,


On Monday 03 July 2017 02:30 PM, Sergey Senozhatsky wrote:
> On (07/03/17 11:43), 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
>>     8293	    841	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
>>
>> File size After adding 'const':
>>     text	   data	    bss	    dec	    hex	filename
>>     8357	    777	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
> sorry, what exactly is the improvement here?
> we grew .text bigger, why should we be happy about it?
Yes, .text size is increased but .data size got decreased.
Overall size will be same. the text segment is often read-only,
to prevent a program from accidentally modifying its instructions.
Here, attribute_group should be const.
> 	-ss
Thanks,
~arvind

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

* Re: [PATCH] zram: constify attribute_group structures.
  2017-07-03 10:30   ` Arvind Yadav
@ 2017-07-03 12:04     ` Sergey Senozhatsky
  0 siblings, 0 replies; 6+ messages in thread
From: Sergey Senozhatsky @ 2017-07-03 12:04 UTC (permalink / raw)
  To: Arvind Yadav; +Cc: Sergey Senozhatsky, minchan, ngupta, linux-kernel

On (07/03/17 16:00), Arvind Yadav wrote:
> On Monday 03 July 2017 02:30 PM, Sergey Senozhatsky wrote:
> > On (07/03/17 11:43), 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
> > >     8293	    841	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
> > > 
> > > File size After adding 'const':
> > >     text	   data	    bss	    dec	    hex	filename
> > >     8357	    777	      4	   9138	   23b2	drivers/block/zram/zram_drv.o
> > sorry, what exactly is the improvement here?
> > we grew .text bigger, why should we be happy about it?
> Yes, .text size is increased but .data size got decreased.
> Overall size will be same. the text segment is often read-only,
> to prevent a program from accidentally modifying its instructions.

well, to the best of my knowledge, nothing in C standard guarantees
that a variable with a C keyword 'const' will be placed into .text
or .rodata. not even sure if all gcc versions have the same opinion
on this.

but ok, we can move that struct to one of the RO sections (up to the
compiler to decide).

	-ss

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

end of thread, other threads:[~2017-07-03 12:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-03  6:13 [PATCH] zram: constify attribute_group structures Arvind Yadav
2017-07-03  6:27 ` Minchan Kim
2017-07-03  7:18   ` Arvind Yadav
2017-07-03  9:00 ` Sergey Senozhatsky
2017-07-03 10:30   ` Arvind Yadav
2017-07-03 12:04     ` Sergey Senozhatsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox