All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
@ 2017-07-27 16:14 ` Roman Gushchin
  0 siblings, 0 replies; 11+ messages in thread
From: Roman Gushchin @ 2017-07-27 16:14 UTC (permalink / raw)
  To: cgroups
  Cc: Roman Gushchin, Tejun Heo, Zefan Li, Waiman Long,
	Johannes Weiner, kernel-team, linux-doc, linux-kernel

Add a cgroup.stat interface to the base cgroup control files
with the following metrics:

nr_descendants		total number of descendant cgroups
nr_dying_descendants	total number of dying descendant cgroups
max_descendant_depth	maximum descent depth below the current cgroup

Signed-off-by: Roman Gushchin <guro@fb.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: Waiman Long <longman@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: kernel-team@fb.com
Cc: cgroups@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 Documentation/cgroup-v2.txt | 12 ++++++++++++
 kernel/cgroup/cgroup.c      | 31 +++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)

diff --git a/Documentation/cgroup-v2.txt b/Documentation/cgroup-v2.txt
index dec5afdaa36d..ae9cc0d917b3 100644
--- a/Documentation/cgroup-v2.txt
+++ b/Documentation/cgroup-v2.txt
@@ -854,6 +854,18 @@ All cgroup core files are prefixed with "cgroup."
 		1 if the cgroup or its descendants contains any live
 		processes; otherwise, 0.
 
+  cgroup.stat
+	A read-only flat-keyed file with the following entries:
+
+	  nr_descendants
+		Total number of descendant cgroups.
+
+	  nr_dying_descendants
+		Total number of dying descendant cgroups.
+
+	  max_descendant_depth
+		Maximum descent depth below the current cgroup.
+
 
 Controllers
 ===========
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 85f6a112344b..b7af1745d46c 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -3216,6 +3216,33 @@ static int cgroup_events_show(struct seq_file *seq, void *v)
 	return 0;
 }
 
+static int cgroup_stats_show(struct seq_file *seq, void *v)
+{
+	struct cgroup_subsys_state *css;
+	unsigned long total = 0;
+	unsigned long offline = 0;
+	int max_level = 0;
+
+	rcu_read_lock();
+	css_for_each_descendant_pre(css, seq_css(seq)) {
+		if (css == seq_css(seq))
+			continue;
+		++total;
+		if (!(css->flags & CSS_ONLINE))
+			++offline;
+		if (css->cgroup->level > max_level)
+			max_level = css->cgroup->level;
+	}
+	rcu_read_unlock();
+
+	seq_printf(seq, "nr_descendants %lu\n", total);
+	seq_printf(seq, "nr_dying_descendants %lu\n", offline);
+	seq_printf(seq, "max_descendant_depth %d\n",
+		   max_level - seq_css(seq)->cgroup->level);
+
+	return 0;
+}
+
 static int cgroup_file_open(struct kernfs_open_file *of)
 {
 	struct cftype *cft = of->kn->priv;
@@ -4309,6 +4336,10 @@ static struct cftype cgroup_base_files[] = {
 		.file_offset = offsetof(struct cgroup, events_file),
 		.seq_show = cgroup_events_show,
 	},
+	{
+		.name = "cgroup.stat",
+		.seq_show = cgroup_stats_show,
+	},
 	{ }	/* terminate */
 };
 
-- 
2.13.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
@ 2017-07-27 16:14 ` Roman Gushchin
  0 siblings, 0 replies; 11+ messages in thread
From: Roman Gushchin @ 2017-07-27 16:14 UTC (permalink / raw)
  To: cgroups
  Cc: Roman Gushchin, Tejun Heo, Zefan Li, Waiman Long,
	Johannes Weiner, kernel-team, linux-doc, linux-kernel

Add a cgroup.stat interface to the base cgroup control files
with the following metrics:

nr_descendants		total number of descendant cgroups
nr_dying_descendants	total number of dying descendant cgroups
max_descendant_depth	maximum descent depth below the current cgroup

Signed-off-by: Roman Gushchin <guro@fb.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: Waiman Long <longman@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: kernel-team@fb.com
Cc: cgroups@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 Documentation/cgroup-v2.txt | 12 ++++++++++++
 kernel/cgroup/cgroup.c      | 31 +++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)

diff --git a/Documentation/cgroup-v2.txt b/Documentation/cgroup-v2.txt
index dec5afdaa36d..ae9cc0d917b3 100644
--- a/Documentation/cgroup-v2.txt
+++ b/Documentation/cgroup-v2.txt
@@ -854,6 +854,18 @@ All cgroup core files are prefixed with "cgroup."
 		1 if the cgroup or its descendants contains any live
 		processes; otherwise, 0.
 
+  cgroup.stat
+	A read-only flat-keyed file with the following entries:
+
+	  nr_descendants
+		Total number of descendant cgroups.
+
+	  nr_dying_descendants
+		Total number of dying descendant cgroups.
+
+	  max_descendant_depth
+		Maximum descent depth below the current cgroup.
+
 
 Controllers
 ===========
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 85f6a112344b..b7af1745d46c 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -3216,6 +3216,33 @@ static int cgroup_events_show(struct seq_file *seq, void *v)
 	return 0;
 }
 
+static int cgroup_stats_show(struct seq_file *seq, void *v)
+{
+	struct cgroup_subsys_state *css;
+	unsigned long total = 0;
+	unsigned long offline = 0;
+	int max_level = 0;
+
+	rcu_read_lock();
+	css_for_each_descendant_pre(css, seq_css(seq)) {
+		if (css == seq_css(seq))
+			continue;
+		++total;
+		if (!(css->flags & CSS_ONLINE))
+			++offline;
+		if (css->cgroup->level > max_level)
+			max_level = css->cgroup->level;
+	}
+	rcu_read_unlock();
+
+	seq_printf(seq, "nr_descendants %lu\n", total);
+	seq_printf(seq, "nr_dying_descendants %lu\n", offline);
+	seq_printf(seq, "max_descendant_depth %d\n",
+		   max_level - seq_css(seq)->cgroup->level);
+
+	return 0;
+}
+
 static int cgroup_file_open(struct kernfs_open_file *of)
 {
 	struct cftype *cft = of->kn->priv;
@@ -4309,6 +4336,10 @@ static struct cftype cgroup_base_files[] = {
 		.file_offset = offsetof(struct cgroup, events_file),
 		.seq_show = cgroup_events_show,
 	},
+	{
+		.name = "cgroup.stat",
+		.seq_show = cgroup_stats_show,
+	},
 	{ }	/* terminate */
 };
 
-- 
2.13.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
  2017-07-27 16:14 ` Roman Gushchin
  (?)
@ 2017-07-27 16:22 ` Tejun Heo
  2017-07-28 13:01     ` Roman Gushchin
  -1 siblings, 1 reply; 11+ messages in thread
From: Tejun Heo @ 2017-07-27 16:22 UTC (permalink / raw)
  To: Roman Gushchin
  Cc: cgroups, Zefan Li, Waiman Long, Johannes Weiner, kernel-team,
	linux-doc, linux-kernel

Hello,

On Thu, Jul 27, 2017 at 05:14:20PM +0100, Roman Gushchin wrote:
> Add a cgroup.stat interface to the base cgroup control files
> with the following metrics:
> 
> nr_descendants		total number of descendant cgroups
> nr_dying_descendants	total number of dying descendant cgroups
> max_descendant_depth	maximum descent depth below the current cgroup

Yeah, this'd be great to have.  Some comments below.

> +  cgroup.stat
> +	A read-only flat-keyed file with the following entries:
> +
> +	  nr_descendants
> +		Total number of descendant cgroups.
> +
> +	  nr_dying_descendants
> +		Total number of dying descendant cgroups.

Can you please go into more detail on what's going on with dying
descendants here?

> +static int cgroup_stats_show(struct seq_file *seq, void *v)
> +{
> +	struct cgroup_subsys_state *css;
> +	unsigned long total = 0;
> +	unsigned long offline = 0;
> +	int max_level = 0;
> +
> +	rcu_read_lock();
> +	css_for_each_descendant_pre(css, seq_css(seq)) {
> +		if (css == seq_css(seq))
> +			continue;
> +		++total;

Let's do post increment for consistency.

> +		if (!(css->flags & CSS_ONLINE))
> +			++offline;
> +		if (css->cgroup->level > max_level)
> +			max_level = css->cgroup->level;
> +	}
> +	rcu_read_unlock();

I wonder whether we want to keep these counters in sync instead of
trying to gather the number on read.  Walking all descendants can get
expensive pretty quickly and things like nr_descendants will be useful
for other purposes too.

Thanks.

-- 
tejun

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
  2017-07-27 16:14 ` Roman Gushchin
  (?)
  (?)
@ 2017-07-27 17:38 ` Waiman Long
  2017-07-27 17:46     ` Roman Gushchin
  -1 siblings, 1 reply; 11+ messages in thread
From: Waiman Long @ 2017-07-27 17:38 UTC (permalink / raw)
  To: Roman Gushchin, cgroups
  Cc: Tejun Heo, Zefan Li, Johannes Weiner, kernel-team, linux-doc,
	linux-kernel

On 07/27/2017 12:14 PM, Roman Gushchin wrote:
> Add a cgroup.stat interface to the base cgroup control files
> with the following metrics:
>
> nr_descendants		total number of descendant cgroups
> nr_dying_descendants	total number of dying descendant cgroups
> max_descendant_depth	maximum descent depth below the current cgroup

Both nr_descendants and max_descendant_depth can be found easily from
userspace by scanning the cgroup directory. nr_dying_descendants is a
transient figure and it should be 0 most of the time. So I wonder how
useful it can be.

This new interface file will be more useful if it can reveal information
that cannot be easily obtained by looking from userspace alone.

Cheers,
Longman

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
  2017-07-27 17:38 ` Waiman Long
@ 2017-07-27 17:46     ` Roman Gushchin
  0 siblings, 0 replies; 11+ messages in thread
From: Roman Gushchin @ 2017-07-27 17:46 UTC (permalink / raw)
  To: Waiman Long
  Cc: cgroups, Tejun Heo, Zefan Li, Johannes Weiner, kernel-team,
	linux-doc, linux-kernel

On Thu, Jul 27, 2017 at 01:38:55PM -0400, Waiman Long wrote:
> On 07/27/2017 12:14 PM, Roman Gushchin wrote:
> > Add a cgroup.stat interface to the base cgroup control files
> > with the following metrics:
> >
> > nr_descendants		total number of descendant cgroups
> > nr_dying_descendants	total number of dying descendant cgroups
> > max_descendant_depth	maximum descent depth below the current cgroup
> 
> Both nr_descendants and max_descendant_depth can be found easily from
> userspace by scanning the cgroup directory. nr_dying_descendants is a
> transient figure and it should be 0 most of the time. So I wonder how
> useful it can be.
> 
> This new interface file will be more useful if it can reveal information
> that cannot be easily obtained by looking from userspace alone.

A cgroup can be in dying state for substantional amount of time
(imagine a memcg which holds a page mlocked by a process in an other cgroup).

The total amount of cgroups, as well as tree depth include dying cgroups,
which are not visible from the userspace.

The main purpose of this interface is to have a reasonable way to check if
there are no leaks/refcounting issues, which prevents cgroups from being
completely freed.

Thanks!

Roman

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
@ 2017-07-27 17:46     ` Roman Gushchin
  0 siblings, 0 replies; 11+ messages in thread
From: Roman Gushchin @ 2017-07-27 17:46 UTC (permalink / raw)
  To: Waiman Long
  Cc: cgroups, Tejun Heo, Zefan Li, Johannes Weiner, kernel-team,
	linux-doc, linux-kernel

On Thu, Jul 27, 2017 at 01:38:55PM -0400, Waiman Long wrote:
> On 07/27/2017 12:14 PM, Roman Gushchin wrote:
> > Add a cgroup.stat interface to the base cgroup control files
> > with the following metrics:
> >
> > nr_descendants		total number of descendant cgroups
> > nr_dying_descendants	total number of dying descendant cgroups
> > max_descendant_depth	maximum descent depth below the current cgroup
> 
> Both nr_descendants and max_descendant_depth can be found easily from
> userspace by scanning the cgroup directory. nr_dying_descendants is a
> transient figure and it should be 0 most of the time. So I wonder how
> useful it can be.
> 
> This new interface file will be more useful if it can reveal information
> that cannot be easily obtained by looking from userspace alone.

A cgroup can be in dying state for substantional amount of time
(imagine a memcg which holds a page mlocked by a process in an other cgroup).

The total amount of cgroups, as well as tree depth include dying cgroups,
which are not visible from the userspace.

The main purpose of this interface is to have a reasonable way to check if
there are no leaks/refcounting issues, which prevents cgroups from being
completely freed.

Thanks!

Roman

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
@ 2017-07-27 17:55       ` Waiman Long
  0 siblings, 0 replies; 11+ messages in thread
From: Waiman Long @ 2017-07-27 17:55 UTC (permalink / raw)
  To: Roman Gushchin
  Cc: cgroups, Tejun Heo, Zefan Li, Johannes Weiner, kernel-team,
	linux-doc, linux-kernel

On 07/27/2017 01:46 PM, Roman Gushchin wrote:
> On Thu, Jul 27, 2017 at 01:38:55PM -0400, Waiman Long wrote:
>> On 07/27/2017 12:14 PM, Roman Gushchin wrote:
>>> Add a cgroup.stat interface to the base cgroup control files
>>> with the following metrics:
>>>
>>> nr_descendants		total number of descendant cgroups
>>> nr_dying_descendants	total number of dying descendant cgroups
>>> max_descendant_depth	maximum descent depth below the current cgroup
>> Both nr_descendants and max_descendant_depth can be found easily from
>> userspace by scanning the cgroup directory. nr_dying_descendants is a
>> transient figure and it should be 0 most of the time. So I wonder how
>> useful it can be.
>>
>> This new interface file will be more useful if it can reveal information
>> that cannot be easily obtained by looking from userspace alone.
> A cgroup can be in dying state for substantional amount of time
> (imagine a memcg which holds a page mlocked by a process in an other cgroup).
>
> The total amount of cgroups, as well as tree depth include dying cgroups,
> which are not visible from the userspace.
>
> The main purpose of this interface is to have a reasonable way to check if
> there are no leaks/refcounting issues, which prevents cgroups from being
> completely freed.
>

If that is the use case, I am OK with that. However, you may want to
document that either in the commit log or in the comment. Maybe you can
also list the full path of the offlined cgroups if it is what you are
looking for.

Cheers,
Longman

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
@ 2017-07-27 17:55       ` Waiman Long
  0 siblings, 0 replies; 11+ messages in thread
From: Waiman Long @ 2017-07-27 17:55 UTC (permalink / raw)
  To: Roman Gushchin
  Cc: cgroups-u79uwXL29TY76Z2rM5mHXA, Tejun Heo, Zefan Li,
	Johannes Weiner, kernel-team-b10kYP2dOMg,
	linux-doc-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

On 07/27/2017 01:46 PM, Roman Gushchin wrote:
> On Thu, Jul 27, 2017 at 01:38:55PM -0400, Waiman Long wrote:
>> On 07/27/2017 12:14 PM, Roman Gushchin wrote:
>>> Add a cgroup.stat interface to the base cgroup control files
>>> with the following metrics:
>>>
>>> nr_descendants		total number of descendant cgroups
>>> nr_dying_descendants	total number of dying descendant cgroups
>>> max_descendant_depth	maximum descent depth below the current cgroup
>> Both nr_descendants and max_descendant_depth can be found easily from
>> userspace by scanning the cgroup directory. nr_dying_descendants is a
>> transient figure and it should be 0 most of the time. So I wonder how
>> useful it can be.
>>
>> This new interface file will be more useful if it can reveal information
>> that cannot be easily obtained by looking from userspace alone.
> A cgroup can be in dying state for substantional amount of time
> (imagine a memcg which holds a page mlocked by a process in an other cgroup).
>
> The total amount of cgroups, as well as tree depth include dying cgroups,
> which are not visible from the userspace.
>
> The main purpose of this interface is to have a reasonable way to check if
> there are no leaks/refcounting issues, which prevents cgroups from being
> completely freed.
>

If that is the use case, I am OK with that. However, you may want to
document that either in the commit log or in the comment. Maybe you can
also list the full path of the offlined cgroups if it is what you are
looking for.

Cheers,
Longman

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
  2017-07-27 16:22 ` Tejun Heo
@ 2017-07-28 13:01     ` Roman Gushchin
  0 siblings, 0 replies; 11+ messages in thread
From: Roman Gushchin @ 2017-07-28 13:01 UTC (permalink / raw)
  To: Tejun Heo
  Cc: cgroups, Zefan Li, Waiman Long, Johannes Weiner, kernel-team,
	linux-doc, linux-kernel

On Thu, Jul 27, 2017 at 12:22:43PM -0400, Tejun Heo wrote:
> Hello,
> 
> On Thu, Jul 27, 2017 at 05:14:20PM +0100, Roman Gushchin wrote:
> > Add a cgroup.stat interface to the base cgroup control files
> > with the following metrics:
> > 
> > nr_descendants		total number of descendant cgroups
> > nr_dying_descendants	total number of dying descendant cgroups
> > max_descendant_depth	maximum descent depth below the current cgroup
> 
> Yeah, this'd be great to have.  Some comments below.
> 
> > +  cgroup.stat
> > +	A read-only flat-keyed file with the following entries:
> > +
> > +	  nr_descendants
> > +		Total number of descendant cgroups.
> > +
> > +	  nr_dying_descendants
> > +		Total number of dying descendant cgroups.
> 
> Can you please go into more detail on what's going on with dying
> descendants here?

Sure.
Don't we plan do describe cgroup/css lifecycle in details
in a separate section?

> > +static int cgroup_stats_show(struct seq_file *seq, void *v)
> > +{
> > +	struct cgroup_subsys_state *css;
> > +	unsigned long total = 0;
> > +	unsigned long offline = 0;
> > +	int max_level = 0;
> > +
> > +	rcu_read_lock();
> > +	css_for_each_descendant_pre(css, seq_css(seq)) {
> > +		if (css == seq_css(seq))
> > +			continue;
> > +		++total;
> 
> Let's do post increment for consistency.

Ok.

> 
> > +		if (!(css->flags & CSS_ONLINE))
> > +			++offline;
> > +		if (css->cgroup->level > max_level)
> > +			max_level = css->cgroup->level;
> > +	}
> > +	rcu_read_unlock();
> 
> I wonder whether we want to keep these counters in sync instead of
> trying to gather the number on read.  Walking all descendants can get
> expensive pretty quickly and things like nr_descendants will be useful
> for other purposes too.

Ok, assuming that I'm working on adding an ability to set limits
on cgroup hierarchy, it seems very reasonable. I'll implement this
and post the updated path as a part of a patchset.

Thanks!

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
@ 2017-07-28 13:01     ` Roman Gushchin
  0 siblings, 0 replies; 11+ messages in thread
From: Roman Gushchin @ 2017-07-28 13:01 UTC (permalink / raw)
  To: Tejun Heo
  Cc: cgroups, Zefan Li, Waiman Long, Johannes Weiner, kernel-team,
	linux-doc, linux-kernel

On Thu, Jul 27, 2017 at 12:22:43PM -0400, Tejun Heo wrote:
> Hello,
> 
> On Thu, Jul 27, 2017 at 05:14:20PM +0100, Roman Gushchin wrote:
> > Add a cgroup.stat interface to the base cgroup control files
> > with the following metrics:
> > 
> > nr_descendants		total number of descendant cgroups
> > nr_dying_descendants	total number of dying descendant cgroups
> > max_descendant_depth	maximum descent depth below the current cgroup
> 
> Yeah, this'd be great to have.  Some comments below.
> 
> > +  cgroup.stat
> > +	A read-only flat-keyed file with the following entries:
> > +
> > +	  nr_descendants
> > +		Total number of descendant cgroups.
> > +
> > +	  nr_dying_descendants
> > +		Total number of dying descendant cgroups.
> 
> Can you please go into more detail on what's going on with dying
> descendants here?

Sure.
Don't we plan do describe cgroup/css lifecycle in details
in a separate section?

> > +static int cgroup_stats_show(struct seq_file *seq, void *v)
> > +{
> > +	struct cgroup_subsys_state *css;
> > +	unsigned long total = 0;
> > +	unsigned long offline = 0;
> > +	int max_level = 0;
> > +
> > +	rcu_read_lock();
> > +	css_for_each_descendant_pre(css, seq_css(seq)) {
> > +		if (css == seq_css(seq))
> > +			continue;
> > +		++total;
> 
> Let's do post increment for consistency.

Ok.

> 
> > +		if (!(css->flags & CSS_ONLINE))
> > +			++offline;
> > +		if (css->cgroup->level > max_level)
> > +			max_level = css->cgroup->level;
> > +	}
> > +	rcu_read_unlock();
> 
> I wonder whether we want to keep these counters in sync instead of
> trying to gather the number on read.  Walking all descendants can get
> expensive pretty quickly and things like nr_descendants will be useful
> for other purposes too.

Ok, assuming that I'm working on adding an ability to set limits
on cgroup hierarchy, it seems very reasonable. I'll implement this
and post the updated path as a part of a patchset.

Thanks!

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats
  2017-07-28 13:01     ` Roman Gushchin
  (?)
@ 2017-07-28 15:09     ` Tejun Heo
  -1 siblings, 0 replies; 11+ messages in thread
From: Tejun Heo @ 2017-07-28 15:09 UTC (permalink / raw)
  To: Roman Gushchin
  Cc: cgroups, Zefan Li, Waiman Long, Johannes Weiner, kernel-team,
	linux-doc, linux-kernel

Hello,

On Fri, Jul 28, 2017 at 02:01:55PM +0100, Roman Gushchin wrote:
> > > +	  nr_dying_descendants
> > > +		Total number of dying descendant cgroups.
> > 
> > Can you please go into more detail on what's going on with dying
> > descendants here?
>
> Sure.
> Don't we plan do describe cgroup/css lifecycle in details
> in a separate section?

We should but it'd still be nice to have a short description here too.

Thanks.

-- 
tejun

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-07-28 15:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-27 16:14 [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats Roman Gushchin
2017-07-27 16:14 ` Roman Gushchin
2017-07-27 16:22 ` Tejun Heo
2017-07-28 13:01   ` Roman Gushchin
2017-07-28 13:01     ` Roman Gushchin
2017-07-28 15:09     ` Tejun Heo
2017-07-27 17:38 ` Waiman Long
2017-07-27 17:46   ` Roman Gushchin
2017-07-27 17:46     ` Roman Gushchin
2017-07-27 17:55     ` Waiman Long
2017-07-27 17:55       ` Waiman Long

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.