Re: [PATCH 01/16] blkcg: make CONFIG_BLK_CGROUP bool

From: Li Zefan
Date: Thu Feb 02 2012 - 01:51:54 EST


Tejun Heo wrote:
> Block cgroup core can be built as module; however, it isn't too useful
> as blk-throttle can only be built-in and cfq-iosched is usually the
> default built-in scheduler. Scheduled blkcg cleanup requires calling
> into blkcg from block core. To simplify that, disallow building blkcg
> as module by making CONFIG_BLK_CGROUP bool.
>
> If building blkcg core as module really matters, which I doubt, we can
> revisit it after blkcg API cleanup.
>
> -v2: Vivek pointed out that IOSCHED_CFQ was incorrectly updated to
> depend on BLK_CGROUP. Fixed.
>
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
> ---
> block/Kconfig.iosched | 4 ----
> block/blk-cgroup.c | 17 -----------------
> block/blk-cgroup.h | 10 ++--------
> init/Kconfig | 2 +-
> 4 files changed, 3 insertions(+), 30 deletions(-)
>

You can merge the following change with your patch.

Moreover, some cgroup APIs were exported to allow blk-cgroup to be built
as a module, and now they can be unexported.

diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index fa8f263..bc8ea70 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -55,9 +55,7 @@ struct cgroup_subsys blkio_subsys = {
.subsys_id = blkio_subsys_id,
#endif
.use_id = 1,
- .module = THIS_MODULE,
};
-EXPORT_SYMBOL_GPL(blkio_subsys);

static inline void blkio_policy_insert_node(struct blkio_cgroup *blkcg,
struct blkio_policy_node *pn)
@@ -1594,8 +1592,6 @@ static void blkiocg_destroy(struct cgroup_subsys *subsys, struct cgroup *cgroup)

free_css_id(&blkio_subsys, &blkcg->css);
rcu_read_unlock();
- if (blkcg != &blkio_root_cgroup)
- kfree(blkcg);
}

static struct cgroup_subsys_state *


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