4/9: cpurc_interface Adds interface functions to resource group CPU controller.
Signed-off-by: Kurosawa Takahiro <[EMAIL PROTECTED]> Signed-off-by: MAEDA Naoaki <[EMAIL PROTECTED]> include/linux/cpu_rc.h | 6 ++++++ kernel/cpu_rc.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) Index: linux-2.6.17-rc3/kernel/cpu_rc.c =================================================================== --- linux-2.6.17-rc3.orig/kernel/cpu_rc.c +++ linux-2.6.17-rc3/kernel/cpu_rc.c @@ -232,3 +232,48 @@ void cpu_rc_detect_hunger(task_t *tsk) tsk->last_activated = 0; } + +void cpu_rc_clear_stat(struct cpu_rc *cr, int cpu) +{ + cr->stat[cpu].timestamp = 0; + cr->stat[cpu].load = 0; + cr->stat[cpu].maybe_hungry = 0; +} + +void cpu_rc_init_cr(struct cpu_rc *cr, struct cpu_rc_domain *rcd) +{ + cr->rcd = rcd; + cr->share = 0; + cr->ts_factor = CPU_RC_TSFACTOR_MAX; +} + +void cpu_rc_get_cr(struct cpu_rc *cr) +{ + cpu_rcd_lock(cr); + cr->rcd->numcrs++; + cpu_rcd_unlock(cr); +} + +void cpu_rc_put_cr(struct cpu_rc *cr) +{ + cpu_rcd_lock(cr); + cr->is_hungry = 0; + cr->rcd->numcrs--; + cpu_rcd_unlock(cr); +} + +void cpu_rc_init_rcd(struct cpu_rc_domain *rcd) +{ + rcd->cpus = cpu_online_map; + spin_lock_init(&rcd->lock); + rcd->hungry_count = 0; + rcd->numcpus = cpus_weight(cpu_online_map); + rcd->numcrs = 0; +} + +void cpu_rc_set_share(struct cpu_rc *cr, int val) +{ + cpu_rcd_lock(cr); + cr->share = val; + cpu_rcd_unlock(cr); +} Index: linux-2.6.17-rc3/include/linux/cpu_rc.h =================================================================== --- linux-2.6.17-rc3.orig/include/linux/cpu_rc.h +++ linux-2.6.17-rc3/include/linux/cpu_rc.h @@ -52,6 +52,12 @@ extern unsigned int cpu_rc_load(struct c extern unsigned int cpu_rc_scale_timeslice(task_t *, unsigned int); extern void cpu_rc_account(task_t *, unsigned long); extern void cpu_rc_detect_hunger(task_t *); +extern void cpu_rc_clear_stat(struct cpu_rc *, int); +extern void cpu_rc_init_cr(struct cpu_rc *, struct cpu_rc_domain *); +extern void cpu_rc_get_cr(struct cpu_rc *); +extern void cpu_rc_put_cr(struct cpu_rc *); +extern void cpu_rc_init_rcd(struct cpu_rc_domain *); +extern void cpu_rc_set_share(struct cpu_rc *, int); static inline void cpu_rc_record_activated(task_t *tsk, unsigned long now) { ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ ckrm-tech mailing list https://lists.sourceforge.net/lists/listinfo/ckrm-tech