[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130102162415.GA4306@redhat.com>
Date: Wed, 2 Jan 2013 11:24:15 -0500
From: Vivek Goyal <vgoyal@...hat.com>
To: Tejun Heo <tj@...nel.org>
Cc: lizefan@...wei.com, axboe@...nel.dk,
containers@...ts.linux-foundation.org, cgroups@...r.kernel.org,
linux-kernel@...r.kernel.org, ctalbott@...gle.com, rni@...gle.com
Subject: Re: [PATCH 23/24] cfq-iosched: collect stats from dead cfqgs
On Fri, Dec 28, 2012 at 12:35:45PM -0800, Tejun Heo wrote:
> To support hierarchical stats, it's necessary to remember stats from
> dead children. Add cfqg->dead_stats and make a dying cfqg transfer
> its stats to the parent's dead-stats.
Hi Tejun,
Why not directly transfer stats to cfqg->stats. IOW, what's the advantage
of maintaining dead_stats separately.
[..]
> + * Transfer @cfqg's stats to its parent's dead_stats so that the ancestors'
> + * recursive stats can still account for the amount used by this cfqg after
> + * it's gone.
> + */
> +static void cfqg_stats_xfer_dead(struct cfq_group *cfqg)
> +{
> + struct cfq_group *parent = cfqg_parent(cfqg);
> +
> + lockdep_assert_held(cfqg_to_blkg(cfqg)->q->queue_lock);
> +
> + if (unlikely(!parent))
> + return;
> +
> + cfqg_stats_merge(&parent->dead_stats, &cfqg->stats);
> + cfqg_stats_merge(&parent->dead_stats, &cfqg->dead_stats);
> + cfqg_stats_reset(&cfqg->stats);
> + cfqg_stats_reset(&cfqg->dead_stats);
Anyway group will be marked offline and later freed. So resetting stats
might not be required.
In fact if we have a realiable way of resetting status then online/offline
infrastructure might not be required? I think per cpu stats will be a
problem though and that's why we probably require logic to online/offline
the group?
Thanks
Vivek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists