- PL2545 WAR: disable CKRM numtasks controller
[linux-2.6.git] / Documentation / ckrm / ckrm_basics
1 CKRM Basics
2 -------------
3 A brief review of CKRM concepts and terminology will help make installation
4 and testing easier. For more details, please visit http://ckrm.sf.net. 
5
6 Currently there are two class types, taskclass and socketclass for grouping,
7 regulating and monitoring tasks and sockets respectively.
8
9 To avoid repeating instructions for each classtype, this document assumes a
10 task to be the kernel object being grouped. By and large, one can replace task
11 with socket and taskclass with socketclass.
12
13 RCFS depicts a CKRM class as a directory. Hierarchy of classes can be
14 created in which children of a class share resources allotted to
15 the parent. Tasks can be classified to any class which is at any level.
16 There is no correlation between parent-child relationship of tasks and
17 the parent-child relationship of classes they belong to.
18
19 Without a Classification Engine, class is inherited by a task. A privileged
20 user can reassigned a task to a class as described below, after which all
21 the child tasks under that task will be assigned to that class, unless the
22 user reassigns any of them.
23
24 A Classification Engine, if one exists, will be used by CKRM to
25 classify a task to a class. The Rule based classification engine uses some
26 of the attributes of the task to classify a task. When a CE is present
27 class is not inherited by a task.
28
29 Characteristics of a class can be accessed/changed through the following magic
30 files under the directory representing the class:
31
32 shares:  allows to change the shares of different resources managed by the
33          class
34 stats:   allows to see the statistics associated with each resources managed
35          by the class
36 target:  allows to assign a task to a class. If a CE is present, assigning
37          a task to a class through this interface will prevent CE from
38                  reassigning the task to any class during reclassification.
39 members: allows to see which tasks has been assigned to a class
40 config:  allow to view and modify configuration information of different
41          resources in a class.
42
43 Resource allocations for a class is controlled by the parameters:
44
45 guarantee: specifies how much of a resource is guranteed to a class. A
46            special value DONT_CARE(-2) mean that there is no specific
47            guarantee of a resource is specified, this class may not get
48            any resource if the system is runing short of resources
49 limit:     specifies the maximum amount of resource that is allowed to be
50            allocated by a class. A special value DONT_CARE(-2) mean that
51            there is no specific limit is specified, this class can get all
52            the resources available.
53 total_guarantee: total guarantee that is allowed among the children of this
54            class. In other words, the sum of "guarantee"s of all children
55            of this class cannot exit this number.
56 max_limit: Maximum "limit" allowed for any of this class's children. In
57            other words, "limit" of any children of this class cannot exceed
58            this value.
59
60 None of this parameters are absolute or have any units associated with
61 them. These are just numbers(that are relative to its parents') that are
62 used to calculate the absolute number of resource available for a specific
63 class.
64
65 Note: The root class has an absolute number of resource units associated with it.
66