Adds teardown functionality to the core. Currently just expects no class
to
be defined when the ckrm_teardown function is called. And it just resets
the shares of the default class to be don't care

--
 include/linux/ckrm.h |    1 +
 kernel/ckrm/ckrm.c   |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)

Index: linux-2.6.13f.uml/include/linux/ckrm.h
===================================================================
--- linux-2.6.13f.uml.orig/include/linux/ckrm.h
+++ linux-2.6.13f.uml/include/linux/ckrm.h
@@ -75,6 +75,7 @@ extern void ckrm_release_class(struct kr
 extern void ckrm_reclassify_class_tasks(struct ckrm_class *);
 extern void ckrm_setclass(struct task_struct *, struct ckrm_class *,
                   struct ckrm_class *);
+extern void ckrm_teardown(void);
 
 extern void ckrm_taskfork(struct task_struct *);
 extern void ckrm_taskexit(struct task_struct *);
Index: linux-2.6.13f.uml/kernel/ckrm/ckrm.c
===================================================================
--- linux-2.6.13f.uml.orig/kernel/ckrm/ckrm.c
+++ linux-2.6.13f.uml/kernel/ckrm/ckrm.c
@@ -291,6 +291,37 @@ ckrm_free_class(struct ckrm_class *cls)
 }
 
 /*
+ * Bring the state of CKRM to the initial state.
+ * As of now, only shares of the default class need to changed to
default
+ * shares.
+ * At this point no user-defined classes should exist
+ */
+void
+ckrm_teardown(void)
+{
+       int i;
+       struct ckrm_res_ctlr *rcbs;
+       struct ckrm_shares shares = {
+               CKRM_SHARE_DONTCARE,
+               CKRM_SHARE_DONTCARE,
+               CKRM_SHARE_DONTCARE,
+               CKRM_SHARE_DONTCARE,
+               CKRM_SHARE_DONTCARE,
+               CKRM_SHARE_DONTCARE
+       };
+
+       BUG_ON(ckrm_num_classes);
+
+       for (i = 0; i < ckrm_max_resid; i++) {
+               rcbs = ckrm_res_ctlrs[i];
+               if (rcbs && rcbs->set_share_values)
+                       (*rcbs->set_share_values)
+                               (ckrm_default_class.res_class[i], &shares);
+       }
+       return;
+}
+
+/*
  * Interfaces for the resource controller
  */
 /*
@@ -419,6 +450,7 @@ EXPORT_SYMBOL_GPL(ckrm_unregister_res_ct
 
 EXPORT_SYMBOL_GPL(ckrm_alloc_class);
 EXPORT_SYMBOL_GPL(ckrm_free_class);
+EXPORT_SYMBOL_GPL(ckrm_teardown);
 
 void
 ckrm_init(void)

-- 

----------------------------------------------------------------------
    Chandra Seetharaman               | Be careful what you choose....
              - [EMAIL PROTECTED]   |      .......you may get it.
----------------------------------------------------------------------




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
ckrm-tech mailing list
https://lists.sourceforge.net/lists/listinfo/ckrm-tech

Reply via email to