Index: BOOK/final-system/common/procps.xml
===================================================================
--- BOOK/final-system/common/procps.xml	(revision 9fedd70f9c8a53749599dd09e96a45c3d7e9e438)
+++ BOOK/final-system/common/procps.xml	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
@@ -26,4 +26,9 @@
     <title>Installation of Procps</title>
 
+    <para os="p1">The following patch adds process control group support to
+    ps:</para>
+
+<screen os="p2"><userinput>patch -Np1 -i ../&procps-pc_cgroup-patch;</userinput></screen>
+
     <para os="s1">The following fixes an issue with Make 3.82:</para>
 
Index: BOOK/final-system/multilib/procps-64bit.xml
===================================================================
--- BOOK/final-system/multilib/procps-64bit.xml	(revision 9fedd70f9c8a53749599dd09e96a45c3d7e9e438)
+++ BOOK/final-system/multilib/procps-64bit.xml	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
@@ -21,4 +21,12 @@
   <sect2 role="installation">
     <title>Installation of Procps</title>
+
+    <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+    href="../common/procps.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+    href="../common/procps.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
Index: BOOK/final-system/multilib/procps-n32.xml
===================================================================
--- BOOK/final-system/multilib/procps-n32.xml	(revision 9fedd70f9c8a53749599dd09e96a45c3d7e9e438)
+++ BOOK/final-system/multilib/procps-n32.xml	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
@@ -22,4 +22,12 @@
   <sect2 role="installation">
     <title>Installation of Procps</title>
+
+    <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+    href="../common/procps.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+    href="../common/procps.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
Index: BOOK/final-system/multilib/procps.xml
===================================================================
--- BOOK/final-system/multilib/procps.xml	(revision 9fedd70f9c8a53749599dd09e96a45c3d7e9e438)
+++ BOOK/final-system/multilib/procps.xml	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
@@ -22,4 +22,12 @@
   <sect2 role="installation">
     <title>Installation of Procps</title>
+
+    <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+    href="../common/procps.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+    href="../common/procps.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
Index: BOOK/introduction/common/changelog.xml
===================================================================
--- BOOK/introduction/common/changelog.xml	(revision 9fedd70f9c8a53749599dd09e96a45c3d7e9e438)
+++ BOOK/introduction/common/changelog.xml	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
@@ -38,5 +38,15 @@
 
     <listitem>
-      <para>January 8, 2011</para>
+      <para>January 30, 2011</para>
+      <itemizedlist>
+        <listitem>
+          <para>[jciccone] - Patch procps so that ps supports process control
+          groups.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
+    <listitem>
+      <para>January 29, 2011</para>
       <itemizedlist>
         <listitem>
Index: BOOK/materials/common/patches.xml
===================================================================
--- BOOK/materials/common/patches.xml	(revision 9fedd70f9c8a53749599dd09e96a45c3d7e9e438)
+++ BOOK/materials/common/patches.xml	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
@@ -119,4 +119,13 @@
 
     <varlistentry>
+      <term>Procps ps cgroup Patch - <token>&procps-ps_cgroup-patch-size;</token>:</term>
+      <listitem>
+        <para>Download: <ulink
+        url="&patches-root;&procps-ps_cgroup-patch;"/></para>
+        <para>MD5 sum: <literal>&procps-ps_cgroup-patch-md5;</literal></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
       <term>Readline Branch Update - <token>&readline-branch_update-patch-size;</token>:</term>
       <listitem>
Index: BOOK/patches.ent
===================================================================
--- BOOK/patches.ent	(revision 9fedd70f9c8a53749599dd09e96a45c3d7e9e438)
+++ BOOK/patches.ent	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
@@ -52,4 +52,8 @@
 <!ENTITY perl-libc-patch-md5 "d572b0cc87b35f1806fd84f88803fb66">
 <!ENTITY perl-libc-patch-size "4 KB">
+
+<!ENTITY procps-ps_cgroup-patch "procps-&procps-version;-ps_cgroup-1.patch">
+<!ENTITY procps-ps_cgroup-patch-md5 "3c478ef88fad23353e332b1b850ec630">
+<!ENTITY procps-ps_cgroup-patch-size "4 KB">
 
 <!ENTITY readline-branch_update-patch "readline-&readline-version;-branch_update-1.patch">
Index: patches/procps-3.2.8-ps_cgroup-1.patch
===================================================================
--- patches/procps-3.2.8-ps_cgroup-1.patch	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
+++ patches/procps-3.2.8-ps_cgroup-1.patch	(revision de18e330f3499f380ea7354cfd3c1a2ddfda22ca)
@@ -0,0 +1,81 @@
+Submitted By: Joe Ciccone <jciccone@gmail.com>
+Date: 2011-01-30
+Initial Package Version: 3.2.7
+Origin: Fedora Git
+        http://pkgs.fedoraproject.org/gitweb/?p=procps.git;a=blob_plain;f=procps-3.2.7-ps-cgroup.patch;h=b638c4f9a826040099f10e9282aad0d31ec5f03f;hb=HEAD
+        http://pkgs.fedoraproject.org/gitweb/?p=procps.git;a=blob_plain;f=procps-3.2.8-ps-cgroup-suppress-root-group.patch;h=4b192c1fb4aa7684b7e57606713ca68690d77845;hb=HEAD
+Upstream Status: Unknown
+Description: Adds the ability for ps to output process(es) cgroups.
+
+diff -Naur procps-3.2.8.orig/ps/output.c procps-3.2.8/ps/output.c
+--- procps-3.2.8.orig/ps/output.c	2009-05-10 15:24:50.000000000 -0400
++++ procps-3.2.8/ps/output.c	2011-01-30 12:58:30.530497002 -0500
+@@ -1099,6 +1099,46 @@
+   return snprintf(outbuf, COLWID, "*");
+ }
+ 
++static int pr_cgroup(char *restrict const outbuf, const proc_t *restrict const pp){
++  char filename[48];
++  FILE *fd;
++  int counter = 0, last_begin = 0, slash = 0;
++  int c;
++  int is_cgroup = 0;
++
++  outbuf[0]='\0';
++  snprintf(filename, sizeof filename, "/proc/%d/cgroup", pp->tgid);
++  fd = fopen(filename, "r");
++  if (likely(fd == NULL)) goto fail;
++  while (( (c = fgetc(fd)) != EOF) && (counter<665)) {
++    if (is_cgroup == 0) {
++      if (c == ':') {
++        is_cgroup = 1;
++        slash = 0;
++        if (counter>0)
++          outbuf[counter++]=';';
++      }
++    }else
++      if ((c == '\n') || (c == '\0')){
++        if (slash)  /* if the last char was a / this process is in the root cgroup which we should suppress */
++            counter = last_begin;
++      else
++            last_begin = counter;
++        is_cgroup = 0;
++      } else {
++        slash = c == '/';
++        outbuf[counter++]=c;
++  }
++  }
++  outbuf[counter]='\0';
++  close(fd);
++  if (counter>0) 
++    return counter;
++fail:
++  outbuf[0] = '-';
++  outbuf[1] = '\0';
++  return 1;
++}
+ 
+ /****************** FLASK & seLinux security stuff **********************/
+ // move the bulk of this to libproc sometime
+@@ -1293,6 +1333,7 @@
+ {"bsdtime",   "TIME",    pr_bsdtime,  sr_nop,     6,   0,    LNX, ET|RIGHT},
+ {"c",         "C",       pr_c,        sr_pcpu,    2,   0,    SUN, ET|RIGHT},
+ {"caught",    "CAUGHT",  pr_sigcatch, sr_nop,     9,   0,    BSD, TO|SIGNAL}, /*sigcatch*/
++{"cgroup",    "CGROUP",  pr_cgroup,   sr_nop,    35,   0,    LNX, PO|LEFT},  /* cgroups*/
+ {"class",     "CLS",     pr_class,    sr_sched,   3,   0,    XXX, TO|LEFT},
+ {"cls",       "CLS",     pr_class,    sr_sched,   3,   0,    HPU, TO|RIGHT}, /*says HPUX or RT*/
+ {"cmaj_flt",  "-",       pr_nop,      sr_cmaj_flt, 1,  0,    LNX, AN|RIGHT},
+diff -Naur procps-3.2.8.orig/ps/ps.1 procps-3.2.8/ps/ps.1
+--- procps-3.2.8.orig/ps/ps.1	2009-05-10 15:38:17.000000000 -0400
++++ procps-3.2.8/ps/ps.1	2011-01-30 12:58:08.382497001 -0500
+@@ -904,6 +904,10 @@
+ displayed.  (alias\ \fBsig_catch\fR,\ \fBsigcatch\fR).
+ T}
+ 
++cgroup	CGROUP	T{
++display control groups to which the process belonges.
++T}
++
+ class	CLS	T{
+ scheduling class of the process.  (alias\ \fBpolicy\fR,\ \fBcls\fR).
+ Field's possible values are:
