Re: [PATCH] blk-cgroup: explicitly init the early_init field

2014-04-22 Thread Jens Axboe
On 04/22/2014 08:18 AM, Jianyu Zhan wrote:
> On Tue, Apr 22, 2014 at 10:16 PM, Jens Axboe  wrote:
>> The rest of the members will be zero-filled by default, so your patch should
>> not change anything.
> 
> Hi, Jens
> 
> I'm sorry I should have made this more clear.
> 
> Sure, for this global variable struct, if not initailized, its all
> fields will be initialized
> to 0 or null(depending on its type).  The point here is no to deprive
> the rights of compiler/linker of doing this initialization, it is mainly for
> documentation reason. Actually this field's value would affect how ->css_alloc
> should implemented.
> 
> Concretely, if early_init is nonzero, then ->css_alloc *must not* call 
> kzalloc,
> because in cgroup implementation, ->css_alloc will be called earlier before
> mm_init().
> 
> I don't think that the value of one field(early_init) has a so subtle
> restrition on the another field(css_alloc) is a good thing, but since
> it is there, docment it should be needed.

Then just add the comment instead. The fact the members following the
last " = something," are zeroed is a common theme in the kernel, if you
just add a patch that blindly (and unnecessarily) zeroes one other
member, somebody else will likely find that odd and remove it again.

To be honest, I don't see much of a need to do anything here, really.

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] blk-cgroup: explicitly init the early_init field

2014-04-22 Thread Jianyu Zhan
On Tue, Apr 22, 2014 at 10:16 PM, Jens Axboe  wrote:
> The rest of the members will be zero-filled by default, so your patch should
> not change anything.

Hi, Jens

I'm sorry I should have made this more clear.

Sure, for this global variable struct, if not initailized, its all
fields will be initialized
to 0 or null(depending on its type).  The point here is no to deprive
the rights of compiler/linker of doing this initialization, it is mainly for
documentation reason. Actually this field's value would affect how ->css_alloc
should implemented.

Concretely, if early_init is nonzero, then ->css_alloc *must not* call kzalloc,
because in cgroup implementation, ->css_alloc will be called earlier before
mm_init().

I don't think that the value of one field(early_init) has a so subtle
restrition on the another field(css_alloc) is a good thing, but since
it is there, docment it should be needed.

Thanks,
Jianyu Zhan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] blk-cgroup: explicitly init the early_init field

2014-04-22 Thread Jens Axboe

On 2014-04-21 23:26, Jianyu Zhan wrote:

For a cgroup subsystem who should init early, then it should carefully
take care of the implementation of css_alloc, because it will be called
before mm_init() setup the world.

Luckily we don't, and we better explicitly assign the early_init field
to 0, for document reason.


The rest of the members will be zero-filled by default, so your patch 
should not change anything.


--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] blk-cgroup: explicitly init the early_init field

2014-04-22 Thread Jens Axboe

On 2014-04-21 23:26, Jianyu Zhan wrote:

For a cgroup subsystem who should init early, then it should carefully
take care of the implementation of css_alloc, because it will be called
before mm_init() setup the world.

Luckily we don't, and we better explicitly assign the early_init field
to 0, for document reason.


The rest of the members will be zero-filled by default, so your patch 
should not change anything.


--
Jens Axboe

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] blk-cgroup: explicitly init the early_init field

2014-04-22 Thread Jianyu Zhan
On Tue, Apr 22, 2014 at 10:16 PM, Jens Axboe ax...@kernel.dk wrote:
 The rest of the members will be zero-filled by default, so your patch should
 not change anything.

Hi, Jens

I'm sorry I should have made this more clear.

Sure, for this global variable struct, if not initailized, its all
fields will be initialized
to 0 or null(depending on its type).  The point here is no to deprive
the rights of compiler/linker of doing this initialization, it is mainly for
documentation reason. Actually this field's value would affect how -css_alloc
should implemented.

Concretely, if early_init is nonzero, then -css_alloc *must not* call kzalloc,
because in cgroup implementation, -css_alloc will be called earlier before
mm_init().

I don't think that the value of one field(early_init) has a so subtle
restrition on the another field(css_alloc) is a good thing, but since
it is there, docment it should be needed.

Thanks,
Jianyu Zhan
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] blk-cgroup: explicitly init the early_init field

2014-04-22 Thread Jens Axboe
On 04/22/2014 08:18 AM, Jianyu Zhan wrote:
 On Tue, Apr 22, 2014 at 10:16 PM, Jens Axboe ax...@kernel.dk wrote:
 The rest of the members will be zero-filled by default, so your patch should
 not change anything.
 
 Hi, Jens
 
 I'm sorry I should have made this more clear.
 
 Sure, for this global variable struct, if not initailized, its all
 fields will be initialized
 to 0 or null(depending on its type).  The point here is no to deprive
 the rights of compiler/linker of doing this initialization, it is mainly for
 documentation reason. Actually this field's value would affect how -css_alloc
 should implemented.
 
 Concretely, if early_init is nonzero, then -css_alloc *must not* call 
 kzalloc,
 because in cgroup implementation, -css_alloc will be called earlier before
 mm_init().
 
 I don't think that the value of one field(early_init) has a so subtle
 restrition on the another field(css_alloc) is a good thing, but since
 it is there, docment it should be needed.

Then just add the comment instead. The fact the members following the
last  = something, are zeroed is a common theme in the kernel, if you
just add a patch that blindly (and unnecessarily) zeroes one other
member, somebody else will likely find that odd and remove it again.

To be honest, I don't see much of a need to do anything here, really.

-- 
Jens Axboe

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] blk-cgroup: explicitly init the early_init field

2014-04-21 Thread Jianyu Zhan
For a cgroup subsystem who should init early, then it should carefully
take care of the implementation of css_alloc, because it will be called
before mm_init() setup the world.

Luckily we don't, and we better explicitly assign the early_init field
to 0, for document reason.

Signed-off-by: Jianyu Zhan 
---
 block/blk-cgroup.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index e4a4145..941bbc8 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -912,6 +912,7 @@ struct cgroup_subsys blkio_cgrp_subsys = {
.css_free = blkcg_css_free,
.can_attach = blkcg_can_attach,
.base_cftypes = blkcg_files,
+   .early_init = 0,
 };
 EXPORT_SYMBOL_GPL(blkio_cgrp_subsys);
 
-- 
2.0.0-rc0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] blk-cgroup: explicitly init the early_init field

2014-04-21 Thread Jianyu Zhan
For a cgroup subsystem who should init early, then it should carefully
take care of the implementation of css_alloc, because it will be called
before mm_init() setup the world.

Luckily we don't, and we better explicitly assign the early_init field
to 0, for document reason.

Signed-off-by: Jianyu Zhan nasa4...@gmail.com
---
 block/blk-cgroup.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index e4a4145..941bbc8 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -912,6 +912,7 @@ struct cgroup_subsys blkio_cgrp_subsys = {
.css_free = blkcg_css_free,
.can_attach = blkcg_can_attach,
.base_cftypes = blkcg_files,
+   .early_init = 0,
 };
 EXPORT_SYMBOL_GPL(blkio_cgrp_subsys);
 
-- 
2.0.0-rc0

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/