Menu

Tree [9b409e] master /
 History

HTTPS access


File Date Author Commit
 web 2009-10-08 Linus Walleij Linus Walleij [df56d0] Why am I dumping out the tasks?
 COPYING 2008-09-30 Linus Walleij Linus Walleij [a7a043] Some more info files
 ChangeLog 2010-10-10 Linus Walleij Linus Walleij [4c9357] One scheduling policy at the time.
 README 2010-09-18 Linus Walleij Linus Walleij [20ea1b] Some README update
 TODO 2009-10-31 Linus Walleij Linus Walleij [c04691] Switch over to using libcgroup
 cgfreak.py 2011-06-04 Linus Walleij Linus Walleij [9b409e] Several bug fixes and enhancements!
 cgroups.py 2010-10-10 Linus Walleij Linus Walleij [4c9357] One scheduling policy at the time.
 cpuinfo.py 2011-06-04 Linus Walleij Linus Walleij [9b409e] Several bug fixes and enhancements!
 grouping.py 2010-11-20 Linus Walleij Linus Walleij [b9e79a] Per-SID grouping, as they discuss on the LKML
 ostime.py 2008-11-03 Linus Walleij Linus Walleij [16d291] New time class and new colors again
 piechart.py 2009-12-06 Linus Walleij Linus Walleij [559255] Get breaking out and collapsing kernel group wo...
 pylibcgroup.py 2011-06-04 Linus Walleij Linus Walleij [9b409e] Several bug fixes and enhancements!
 scheduledialog.py 2010-11-20 Linus Walleij Linus Walleij [b9e79a] Per-SID grouping, as they discuss on the LKML
 task.py 2011-06-04 Linus Walleij Linus Walleij [9b409e] Several bug fixes and enhancements!

Read Me

CGFreak
By Linus Walleij
http://cgfreak.sourceforge.net/

The idea with CGFreak is to visualize and help in auditing and evaluating
the use of Linux' control groups. It inspects the processes on the system
under observation and generate graphical representations of their states.
This includes but is not limited to:

* CPU/Core timesliceing with the CFS
* CPU/Core affinity
* I/O scheduling policies for processes
* ... whatever you can come up with. Memory policies the day the control
  groups have that.

I wanted to call this program(s) "Controlfreak" but obviously there is a
trademark problem with that name.


INSTALLATION
------------

First, you need a very recent kernel with all the nice CPU slicing
and CPU affinity control groups.

You will then need some prerequisite python, libcgroup, pycairo and
pygtk2 packages. On a Fedora 11 install you need these:

  yum install libcgroup pycairo pygtk2

On some Debian box I think you need these:

  apt-get install libcgroup-dev python-cairo python-cairo-dev \
                  python-gtk2 python-gtk2-dev

Then (as root) set up libcgroup to mount the CPU control group and
the CPU affinity control groups (atleast) in two separate dirs like
this in the file /etc/cgconfig.conf:

 mount {
         cpuset  = /cgroup/cpuset;
         cpu     = /cgroup/cpu;
 }

(These are specified by default since Fedora 13.)

The exact mount point doesn't matter much since we will autodetect
that by asking libcgroup.

Installing the Fedora package libcgroup adds two new services named

- cgconfig
- cgred

None of which are activated by default. If you want to play with
cgfreak you have to go into the menu

System -> Administration -> Services

And from the GUI start or permanently activate these two services.

Then just run it:

 ./cgfreak.py


BACKGROUND
----------

Learn about control groups in the kernel tree:

Documentation/cgroups/*
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.