Messages in this thread | | | Date | Wed, 10 Nov 2010 10:06:37 +0800 | From | Li Zefan <> | Subject | Re: [PATCH 1/7] cgroups: Shrink struct cgroup_subsys |
| |
Paul Menage wrote: > On Tue, Nov 9, 2010 at 4:52 PM, Li Zefan <lizf@cn.fujitsu.com> wrote: >>> bool active:1; >>> bool disabled:1; >>> >> It won't compile, but unsigned char active:1 will do. ;) > > Are you sure? I don't have a buildable kernel tree at the moment, but > the following fragment compiled fine for me (with gcc 4.4.3): > > struct foo { > _Bool b1:1; > _Bool b2:1; > }; > > and was sized at one byte. And "bool" is just a typedef of _Bool in > the kernel headers. >
Oops, I just used bool outside kernel tree..
>> Every thing that reduces code size (without sacrifice readability >> and maintain maintainability) should be worth. > > Agreed, within reason. But this patch doesn't reduce code size - it
I meant binary size.
> makes the code fractionally more complicated and reduces the *binary* > size by a few bytes. >
It's a commonly used skill in kernel code, so I can't say it makes code more complicated.
That said, I'll happily drop this patch. It just came to me when I started to add new bool values to the structure. Or if you prefer bool xxx:1 or just bool xxx, I can do that.
>> This is one of the reasons we accept patches that replacing >> kmalloc+memset with kzalloc, which just saves 8 bytes in my box. >> > > Replacing two function calls with one function call is a code > simplification and hence (generally) a good thing - the minuscule > reduction in binary size reduction that comes with it is just noise. >
| |