lkml.org 
[lkml]   [2009]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 14/16] blkio: Propagate cgroup weight updation to cfq groups
    Date
    o Propagate blkio cgroup weight updation to associated cfq groups.

    Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
    ---
    block/blk-cgroup.c | 7 +++++++
    block/cfq-iosched.c | 6 ++++++
    2 files changed, 13 insertions(+), 0 deletions(-)

    diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
    index 4ef78d3..179ddfa 100644
    --- a/block/blk-cgroup.c
    +++ b/block/blk-cgroup.c
    @@ -16,6 +16,7 @@
    #include "blk-cgroup.h"

    extern void cfq_unlink_blkio_group(void *, struct blkio_group *);
    +extern void cfq_update_blkio_group_weight(struct blkio_group *, unsigned int);

    struct blkio_cgroup blkio_root_cgroup = { .weight = 2*BLKIO_WEIGHT_DEFAULT };

    @@ -116,12 +117,18 @@ static int
    blkiocg_weight_write(struct cgroup *cgroup, struct cftype *cftype, u64 val)
    {
    struct blkio_cgroup *blkcg;
    + struct blkio_group *blkg;
    + struct hlist_node *n;

    if (val < BLKIO_WEIGHT_MIN || val > BLKIO_WEIGHT_MAX)
    return -EINVAL;

    blkcg = cgroup_to_blkio_cgroup(cgroup);
    + spin_lock_irq(&blkcg->lock);
    blkcg->weight = (unsigned int)val;
    + hlist_for_each_entry(blkg, n, &blkcg->blkg_list, blkcg_node)
    + cfq_update_blkio_group_weight(blkg, blkcg->weight);
    + spin_unlock_irq(&blkcg->lock);
    return 0;
    }

    diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
    index a9c8a52..5feffdc 100644
    --- a/block/cfq-iosched.c
    +++ b/block/cfq-iosched.c
    @@ -898,6 +898,12 @@ static inline struct cfq_group *cfqg_of_blkg(struct blkio_group *blkg)
    return NULL;
    }

    +void
    +cfq_update_blkio_group_weight(struct blkio_group *blkg, unsigned int weight)
    +{
    + cfqg_of_blkg(blkg)->weight = weight;
    +}
    +
    static struct cfq_group *
    cfq_find_alloc_cfqg(struct cfq_data *cfqd, struct cgroup *cgroup, int create)
    {
    --
    1.6.2.5


    \
     
     \ /
      Last update: 2009-11-13 18:45    [W:4.168 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site