Jianyu Zhan | 17 Apr 17:29 2014
Picon

[PATCH 1/3] cgroup: clean up obsolete comment for parse_cgroupfs_options()

Commit 1d5be6b287c8efc87(cgroup: move module ref handling into
rebind_subsystems()) makes parse_cgroupfs_options() no longer
takes refcounts on subsystems.

And unified hierachy makes parse_cgroupfs_options not need to
call with cgroup_mutex held to protect the cgroup_subsys[].

So this patch cleanups these comment and BUG_ON().

Signed-off-by: Jianyu Zhan <nasa4836@...>
---
 kernel/cgroup.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 2412cb7..b261798 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
 <at>  <at>  -1222,10 +1222,7  <at>  <at>  struct cgroup_sb_opts {
 };

 /*
- * Convert a hierarchy specifier into a bitmask of subsystems and
- * flags. Call with cgroup_mutex held to protect the cgroup_subsys[]
- * array. This function takes refcounts on subsystems to be used, unless it
- * returns error, in which case no refcounts are taken.
+ * Convert a hierarchy specifier into a bitmask of subsystems and flags.
  */
 static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
 {
(Continue reading)

Jianyu Zhan | 17 Apr 17:29 2014
Picon

[PATCH 2/3] cgroup: remove orphaned cgroup_pidlist_seq_operations

Commit 6612f05b88fa309c9(cgroup: unify pidlist and other file handling)
has removed the only user of cgroup_pidlist_seq_operations :
cgroup_pidlist_open().

This patch removes it.

Signed-off-by: Jianyu Zhan <nasa4836@...>
---
 kernel/cgroup.c | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index b261798..38a9cd0 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
 <at>  <at>  -3883,17 +3883,6  <at>  <at>  static int cgroup_pidlist_show(struct seq_file *s, void *v)
 	return seq_printf(s, "%d\n", *(int *)v);
 }

-/*
- * seq_operations functions for iterating on pidlists through seq_file -
- * independent of whether it's tasks or procs
- */
-static const struct seq_operations cgroup_pidlist_seq_operations = {
-	.start = cgroup_pidlist_start,
-	.stop = cgroup_pidlist_stop,
-	.next = cgroup_pidlist_next,
-	.show = cgroup_pidlist_show,
-};
-
(Continue reading)

Jianyu Zhan | 17 Apr 17:28 2014
Picon

[PATCH 3/3] cgroup: replace pr_warning with preferred pr_warn

As suggested by scripts/checkpatch.pl, substitude all pr_warning()
with pr_warn.

No functional change.

Signed-off-by: Jianyu Zhan <nasa4836@...>
---
 kernel/cgroup.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 38a9cd0..2b436e2 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
 <at>  <at>  -1126,9 +1126,9  <at>  <at>  static int rebind_subsystems(struct cgroup_root *dst_root,
 		 * Just warn about it and continue.
 		 */
 		if (cgrp_dfl_root_visible) {
-			pr_warning("cgroup: failed to create files (%d) while rebinding 0x%lx to default root\n",
+			pr_warn("cgroup: failed to create files (%d) while rebinding 0x%lx to default root\n",
 				   ret, ss_mask);
-			pr_warning("cgroup: you may retry by moving them to a different hierarchy and unbinding\n");
+			pr_warn("cgroup: you may retry by moving them to a different hierarchy and unbinding\n");
 		}
 	}

 <at>  <at>  -1326,7 +1326,7  <at>  <at>  static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
 	/* Consistency checks */

 	if (opts->flags & CGRP_ROOT_SANE_BEHAVIOR) {
(Continue reading)

Jianyu Zhan | 17 Apr 16:14 2014
Picon

[PATCH] cgroup: clean up obsolete code and comment

This patch purely makes cleanup.

1. parse_cgroupfs_options() no longer takes refcounts on
   subsystems to be used, update its comment.
2. cgroup_pidlist_seq_operations has no more user, remove it.
3. s/pr_warning/pr_warn/g, suggested by scripts/checkpatch.pl.

Signed-off-by: Jianyu Zhan <nasa4836@...>
---
 kernel/cgroup.c | 31 +++++++++----------------------
 1 file changed, 9 insertions(+), 22 deletions(-)

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 8c314dd..ec5bfb2 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
 <at>  <at>  -1127,9 +1127,9  <at>  <at>  static int rebind_subsystems(struct cgroup_root *dst_root,
 		 * Just warn about it and continue.
 		 */
 		if (cgrp_dfl_root_visible) {
-			pr_warning("cgroup: failed to create files (%d) while rebinding 0x%lx to default root\n",
+			pr_warn("cgroup: failed to create files (%d) while rebinding 0x%lx to default root\n",
 				   ret, ss_mask);
-			pr_warning("cgroup: you may retry by moving them to a different hierarchy and unbinding\n");
+			pr_warn("cgroup: you may retry by moving them to a different hierarchy and unbinding\n");
 		}
 	}

 <at>  <at>  -1223,10 +1223,8  <at>  <at>  struct cgroup_sb_opts {
 };
(Continue reading)

Jianyu Zhan | 16 Apr 18:40 2014
Picon

[PATCH] kernfs: move the last knowledge of sysfs out from kernfs

There is still one residue of sysfs remaining: the sb_magic
SYSFS_MAGIC. However this should be kernfs user specific,
so this patch moves it out. Kerrnfs user should specify their
magic number while mouting.

Signed-off-by: Jianyu Zhan <nasa4836@...>
---
 fs/kernfs/mount.c      |  9 +++++----
 fs/sysfs/mount.c       |  4 +++-
 include/linux/kernfs.h | 10 ++++++----
 kernel/cgroup.c        |  4 +++-
 4 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/fs/kernfs/mount.c b/fs/kernfs/mount.c
index 6a5f04a..514d946 100644
--- a/fs/kernfs/mount.c
+++ b/fs/kernfs/mount.c
 <at>  <at>  -62,7 +62,7  <at>  <at>  struct kernfs_root *kernfs_root_from_sb(struct super_block *sb)
 	return NULL;
 }

-static int kernfs_fill_super(struct super_block *sb)
+static int kernfs_fill_super(struct super_block *sb, void *data)
 {
 	struct kernfs_super_info *info = kernfs_info(sb);
 	struct inode *inode;
 <at>  <at>  -70,7 +70,7  <at>  <at>  static int kernfs_fill_super(struct super_block *sb)

 	sb->s_blocksize = PAGE_CACHE_SIZE;
 	sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
(Continue reading)

cristine corner | 15 Apr 17:52 2014

Industry Specific List

Hi, 

Are you looking for any of the following Software Users Contact Information
for your marketing campaigns? 

ERP: - JD Edwards, Infor Baan, SAP, Exact Software, NetSuite, PeopleSoft,
etc. 

CRM: - SalesForce, MS Dynamics, NetSuite, Siebel, Teradata, Epicor, Infor,
CDC Software, etc.

Engineering Software: - Autodesk, Siemens PLM, Adobe, AutoCAD, MAYA, Revitt,
Solidworks, PTC, MADCAD, etc.

Cloud Computing: - Amazon, RackSpace, and Google APPS, Hyper-V, NetApp, etc.

Storage application: - NetApp, EMC, Citrix, HP, Brocade, DELL, etc. 

Security Software: - Symantec, McAfee, IBM, Riverbed, Tabberg, Commvault,
Juniper Networks, F5, etc.

Networking: - Brocade, Symantec, Avaya, Cisco, Shoretel, etc.

Medical Software: - NextGen, AllScripts, EMR, McKesson, Practice Fusion,
eClinical Works, etc.

Accounting Software: - Sage, PeachTree, Timberline, MS Dynamics, NetSuite,
Deltek, Lawson, QuickBooks, etc.

Business Intelligence: - SAP Business Objects, Microstratergy, Tibco,
(Continue reading)

Jianyu Zhan | 15 Apr 14:47 2014
Picon

[PATCH] cgroup: print pretty format in /proc/cgroups

I found that /proc/cgroups printed format has ugly alignment(see below).

This patch confines every field in fixed-width(16 actually) range.
Though MAX_CGROUP_TYPE_NAMELEN is 32, but currently no subsystem
has name width more than 10, so 16 is a moderate width; besides, 16
figures could accomandate enormous huge number, so no need to worry
that these fields would clobber each other.

Before:
  #subsys_name     hierarchy       num_cgroups     enabled
  cpuset	2	1	1
  cpu	3	1	1
  cpuacct	3	1	1
  memory	4	1	1
  devices	5	1	1
  freezer 6	1	1
  net_cls	7	1	1
  blkio	8	1	1
  perf_event	9	1	1
  hugetlb	10	1	1

Patch applied:
  #subsys_name     hierarchy       num_cgroups     enabled
  cpuset          2               1               1
  cpu             3               1               1
  cpuacct         3               1               1
  memory          4               1               1
  devices         5               1               1
  freezer         6               1               1
  net_cls         7               1               1
(Continue reading)

Tejun Heo | 15 Apr 00:09 2014

[PATCH cgroup/for-3.16] cgroup: add documentation about unified hierarchy

Hello,

Unified hierarchy is finally out for review [1][2].  This patch adds
the documentation which describes the design and rationales.  If you
can think of more people to cc, please go ahead.

If you have any comments and/or questions, please don't hesitate.

Thanks.

[1] http://lkml.kernel.org/g/1397511430-2673-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A <at> public.gmane.org
[2] http://lkml.kernel.org/g/1397511846-2904-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A <at> public.gmane.org

------ 8< ------
From 68eb841c53bb26a7b49f8f244ebd68f2530d8d0b Mon Sep 17 00:00:00 2001
From: Tejun Heo <tj@...>
Date: Mon, 14 Apr 2014 17:29:39 -0400

Unified hierarchy will be the new version of cgroup interface.  This
patch adds Documentation/cgroups/unified-hierarchy.txt which describes
the design and rationales of unified hierarchy.

Signed-off-by: Tejun Heo <tj@...>
---
 Documentation/cgroups/unified-hierarchy.txt | 359 ++++++++++++++++++++++++++++
 1 file changed, 359 insertions(+)
 create mode 100644 Documentation/cgroups/unified-hierarchy.txt

diff --git a/Documentation/cgroups/unified-hierarchy.txt b/Documentation/cgroups/unified-hierarchy.txt
new file mode 100644
(Continue reading)

Tejun Heo | 14 Apr 23:44 2014

[PATCHSET cgroup/for-3.16] cgroup: implement cgroup.populated, v2

Hello,

This is v2 of cgroup.populated patchset changes from v1[L] are,

* Rebased on top of v3.15-rc1

* Patch description updated for the third patch as per Serge.

(inotify folks, can you please review the second patch which hooks up
 kernfs_notify() with fsnotify?  It works but directly invoking
 fsnotify_parent() and fsnotify() feels a bit dirty.  Maybe something
 like fsnotify_notify_modify_by_dentry() would make more sense?)

cgroup users often need a way to determine when a cgroup's
subhierarchy becomes empty so that it can be cleaned up.  cgroup
currently provides release_agent for it; unfortunately, this mechanism
is riddled with issues.  This patchset implements a replacement
mechanism "cgroup.subtree_populated" which can be used to monitor
whether the cgroup's subhierarchy has tasks in it or not and triggers
poll and [di]notify events when its content changes.

This patchset contains the following three patches.

 0001-kernfs-implement-kernfs_root-supers-list.patch
 0002-kernfs-make-kernfs_notify-trigger-inotify-events-too.patch
 0003-cgroup-implement-cgroup.subtree_populated-for-the-de.patch

0001-0002 add [di]notify notification to kernfs_notify().

0003 implements cgroup.subtree_populated.
(Continue reading)

Tejun Heo | 14 Apr 23:36 2014

[PATCHSET cgroup/for-3.16] cgroup: implement unified hierarchy, v2

Hello,

This is v2 of the unified hierarchy patchset.  Changes from v1[1] are,

* Rebased on top of v3.15-rc1

* Interface file "cgroup.controllers" which was only available in the
  root is now available in all cgroups.  This allows, e.g., a
  sub-manager in charge of a subtree to tell which controllers are
  available to it.

cgroup currently allows creating arbitrary number of hierarchies and
any number of controllers may be associated with a given tree.  This
allows for huge amount of variance how tasks are associated with
various cgroups and controllers; unfortunately, the variance is
extreme to the extent that it unnecessarily complicates capabilities
which can otherwise be straight-forward and hinders implementation of
features which can benefit from coordination among different
controllers.

Here are some of the issues which we're facing with the current
multiple hierarchies.

* cgroup membership of a task can't be described in finite number of
  paths.  As there can be arbitrary number of hierarchies, the key
  describing a task's cgroup membership can be arbitrarily long.  This
  is painful when userland or other parts of the kernel needs to take
  cgroup membership into account and leads to proliferation of
  controllers which are just there to identify membership rather than
  actually control resources, which in turn exacerbates the problem.
(Continue reading)

Tejun Heo | 9 Apr 17:07 2014

[PATCHSET cgroup/for-3.16] cgroup: implement cgroup.populated

Hello,

(inotify folks, can you please review the second patch which hooks up
 kernfs_notify() with fsnotify?  It works but directly invoking
 fsnotify_parent() and fsnotify() feels a bit dirty.  Maybe something
 like fsnotify_notify_modify_by_dentry() would make more sense?)

cgroup users often need a way to determine when a cgroup's
subhierarchy becomes empty so that it can be cleaned up.  cgroup
currently provides release_agent for it; unfortunately, this mechanism
is riddled with issues.  This patchset implements a replacement
mechanism "cgroup.subtree_populated" which can be used to monitor
whether the cgroup's subhierarchy has tasks in it or not and triggers
poll and [di]notify events when its content changes.

This patchset contains the following three patches.

 0001-kernfs-implement-kernfs_root-supers-list.patch
 0002-kernfs-make-kernfs_notify-trigger-inotify-events-too.patch
 0003-cgroup-implement-cgroup.subtree_populated-for-the-de.patch

0001-0002 add [di]notify notification to kernfs_notify().

0003 implements cgroup.subtree_populated.

This patchset is on top of "cgroup: implement unified hierarchy"
patchset[1] and availalbe in the following git branch.

 git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-populated

(Continue reading)


Gmane