本文整理汇总了C++中cputime_sub函数的典型用法代码示例。如果您正苦于以下问题:C++ cputime_sub函数的具体用法?C++ cputime_sub怎么用?C++ cputime_sub使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cputime_sub函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: end_mtproc_info
void end_mtproc_info(struct task_struct *p)
{
struct mt_proc_struct *mtproc = mt_proc_head;
mutex_lock(&mt_cputime_lock);
//check profiling enable flag
if(0 == mtsched_enabled)
{
mutex_unlock(&mt_cputime_lock);
return;
}
//may waste time...
while(mtproc != NULL)
{
if(p->pid != mtproc->pid)
{
mtproc = mtproc->next;
}
else
{
break;
}
}
/*
for(i=0;i<proc_count; i++){
if(p->pid == mt_proc[i]->pid)
break;
}
*/
if(mtproc == NULL)
// if(i == proc_count)
{
printk("pid:%d can't be found in mtsched proc_info.\n",p->pid);
mutex_unlock(&mt_cputime_lock);
return;
}
mtproc->prof_end = sched_clock();
/* update cputime */
mtproc->cputime = p->se.sum_exec_runtime;
mtproc->isr_time = p->se.mtk_isr_time;
mtproc->isr_count = p->se.mtk_isr_count;
mtproc->mtk_isr = p->se.mtk_isr;
p->se.mtk_isr = NULL;
mt_task_times(p,&mtproc->utime, &mtproc->stime);
mtproc->utime = cputime_sub(mtproc->utime, mtproc->utime_init);
mtproc->stime = cputime_sub(mtproc->stime, mtproc->stime_init);
mutex_unlock(&mt_cputime_lock);
return;
}
开发者ID:5C4R4B3,项目名称:CINK_SLIM_ICS_Opensource,代码行数:51,代码来源:prof_ctl.c
示例2: get_cpu_itimer
static void get_cpu_itimer(struct task_struct *tsk, unsigned int clock_id,
struct itimerval *const value)
{
cputime_t cval, cinterval;
struct cpu_itimer *it = &tsk->signal->it[clock_id];
spin_lock_irq(&tsk->sighand->siglock);
cval = it->expires;
cinterval = it->incr;
if (!cputime_eq(cval, cputime_zero)) {
struct task_cputime cputime;
cputime_t t;
thread_group_cputimer(tsk, &cputime);
if (clock_id == CPUCLOCK_PROF)
t = cputime_add(cputime.utime, cputime.stime);
else
/* CPUCLOCK_VIRT */
t = cputime.utime;
if (cputime_le(cval, t))
/* about to fire */
cval = cputime_one_jiffy;
else
cval = cputime_sub(cval, t);
}
spin_unlock_irq(&tsk->sighand->siglock);
cputime_to_timeval(cval, &value->it_value);
cputime_to_timeval(cinterval, &value->it_interval);
}
开发者ID:CSCLOG,项目名称:beaglebone,代码行数:33,代码来源:itimer.c
示例3: thread_group_cpu_share
static ushort thread_group_cpu_share(struct task_struct *task)
{
struct task_cputime times;
cputime_t num_load, div_load, total_time;
ushort share;
my_thread_group_cputime(task, ×);
total_time = cputime_add(times.utime, times.stime);
/*
last_cputime == 0 means that the timer_function has been called
for the first time and we have to collect info before doing any
check.
*/
if (unlikely(last_cputime == 0)) {
share = 0;
printk(KERN_INFO "sendsig: timer initialization completed\n");
} else {
/*
Let's compute the share of cpu usage for the last WAIT_TIMEOUT
seconds
*/
num_load = cputime_sub(total_time, last_cputime) * 100;
div_load = jiffies_to_cputime(wait_timeout * HZ);
share = (ushort)cputime_div(num_load, div_load);
printk(KERN_DEBUG "sendsig: computed cpu share for process %d: %d\n",
pid, share);
}
/*
Update last_cputime
*/
last_cputime = total_time;
return share;
}
开发者ID:DavidePastore,项目名称:sendsig,代码行数:35,代码来源:sendsig.c
示例4: update_busfreq_stat
void update_busfreq_stat(struct busfreq_data *data, unsigned int index)
{
#ifdef BUSFREQ_DEBUG
unsigned long long cur_time = get_jiffies_64();
data->time_in_state[index] = cputime64_add(data->time_in_state[index], cputime_sub(cur_time, data->last_time));
data->last_time = cur_time;
#endif
}
开发者ID:svncibrahim,项目名称:willow_kernel,代码行数:8,代码来源:busfreq_opp_exynos4.c
示例5: cpufreq_stats_update
static int cpufreq_stats_update(unsigned int cpu)
{
struct cpufreq_stats *stat;
unsigned long long cur_time;
cur_time = get_jiffies_64();
spin_lock(&cpufreq_stats_lock);
stat = per_cpu(cpufreq_stats_table, cpu);
if (!stat) {
spin_unlock(&cpufreq_stats_lock);
return 0;
}
if (stat->time_in_state)
stat->time_in_state[stat->last_index] =
cputime64_add(stat->time_in_state[stat->last_index],
cputime_sub(cur_time, stat->last_time));
if (cpu == 0)
cpu0_time_in_state[stat->last_index] =
cputime64_add(cpu0_time_in_state[stat->last_index],
cputime_sub(cur_time, stat->last_time));
else if (cpu == 1)
cpu1_time_in_state[stat->last_index] =
cputime64_add(cpu1_time_in_state[stat->last_index],
cputime_sub(cur_time, stat->last_time));
#ifdef CONFIG_QUAD_CORES_SOC_STAT
else if (cpu == 2)
cpu2_time_in_state[stat->last_index] =
cputime64_add(cpu2_time_in_state[stat->last_index],
cputime_sub(cur_time, stat->last_time));
else if (cpu == 3)
cpu3_time_in_state[stat->last_index] =
cputime64_add(cpu3_time_in_state[stat->last_index],
cputime_sub(cur_time, stat->last_time));
#endif
stat->last_time = cur_time;
spin_unlock(&cpufreq_stats_lock);
return 0;
}
开发者ID:javilonas,项目名称:Thoth-GT-I9300-Sammy,代码行数:40,代码来源:cpufreq_stats.c
示例6: cpufreq_stats_update
static int
cpufreq_stats_update (unsigned int cpu)
{
struct cpufreq_stats *stat;
unsigned long long cur_time;
cur_time = get_jiffies_64();
spin_lock(&cpufreq_stats_lock);
stat = cpufreq_stats_table[cpu];
if (stat->time_in_state)
stat->time_in_state[stat->last_index] =
cputime64_add(stat->time_in_state[stat->last_index],
cputime_sub(cur_time, stat->last_time));
stat->last_time = cur_time;
spin_unlock(&cpufreq_stats_lock);
return 0;
}
开发者ID:ManiacTwister,项目名称:linux-hnd,代码行数:17,代码来源:cpufreq_stats.c
示例7: cpufreq_stats_update
static int cpufreq_stats_update(unsigned int cpu)
{
struct cpufreq_stats *stat;
unsigned long long cur_time;
cur_time = get_jiffies_64();
spin_lock(&cpufreq_stats_lock);
stat = per_cpu(cpufreq_stats_table, cpu);
#if defined (CONFIG_MACH_SAMSUNG_P5)
if(!stat) {
spin_unlock(&cpufreq_stats_lock);
return -1;
}
#endif
if (stat->time_in_state && stat->last_index >= 0)
stat->time_in_state[stat->last_index] =
cputime64_add(stat->time_in_state[stat->last_index],
cputime_sub(cur_time, stat->last_time));
stat->last_time = cur_time;
spin_unlock(&cpufreq_stats_lock);
return 0;
}
开发者ID:motley-git,项目名称:Kernel-GT-P73xx-v2,代码行数:23,代码来源:cpufreq_stats.c
示例8: acct_update_integrals
/**
* acct_update_integrals - update mm integral fields in task_struct
* @tsk: task_struct for accounting
*/
void acct_update_integrals(struct task_struct *tsk)
{
if (likely(tsk->mm)) {
cputime_t time, dtime;
struct timeval value;
unsigned long flags;
u64 delta;
local_irq_save(flags);
time = tsk->stime + tsk->utime;
dtime = cputime_sub(time, tsk->acct_timexpd);
jiffies_to_timeval(cputime_to_jiffies(dtime), &value);
delta = value.tv_sec;
delta = delta * USEC_PER_SEC + value.tv_usec;
if (delta == 0)
goto out;
tsk->acct_timexpd = time;
tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm);
tsk->acct_vm_mem1 += delta * tsk->mm->total_vm;
out:
local_irq_restore(flags);
}
}
开发者ID:deepikateriar,项目名称:Onlive-Source-Backup,代码行数:28,代码来源:tsacct.c
示例9: do_getitimer
int do_getitimer(int which, struct itimerval *value)
{
struct task_struct *tsk = current;
cputime_t cinterval, cval;
switch (which) {
case ITIMER_REAL:
spin_lock_irq(&tsk->sighand->siglock);
value->it_value = itimer_get_remtime(&tsk->signal->real_timer);
value->it_interval =
ktime_to_timeval(tsk->signal->it_real_incr);
spin_unlock_irq(&tsk->sighand->siglock);
break;
case ITIMER_VIRTUAL:
read_lock(&tasklist_lock);
spin_lock_irq(&tsk->sighand->siglock);
cval = tsk->signal->it_virt_expires;
cinterval = tsk->signal->it_virt_incr;
if (!cputime_eq(cval, cputime_zero)) {
struct task_struct *t = tsk;
cputime_t utime = tsk->signal->utime;
do {
utime = cputime_add(utime, t->utime);
t = next_thread(t);
} while (t != tsk);
if (cputime_le(cval, utime)) { /* about to fire */
cval = jiffies_to_cputime(1);
} else {
cval = cputime_sub(cval, utime);
}
}
spin_unlock_irq(&tsk->sighand->siglock);
read_unlock(&tasklist_lock);
cputime_to_timeval(cval, &value->it_value);
cputime_to_timeval(cinterval, &value->it_interval);
break;
case ITIMER_PROF:
read_lock(&tasklist_lock);
spin_lock_irq(&tsk->sighand->siglock);
cval = tsk->signal->it_prof_expires;
cinterval = tsk->signal->it_prof_incr;
if (!cputime_eq(cval, cputime_zero)) {
struct task_struct *t = tsk;
cputime_t ptime = cputime_add(tsk->signal->utime,
tsk->signal->stime);
do {
ptime = cputime_add(ptime,
cputime_add(t->utime,
t->stime));
t = next_thread(t);
} while (t != tsk);
if (cputime_le(cval, ptime)) { /* about to fire */
cval = jiffies_to_cputime(1);
} else {
cval = cputime_sub(cval, ptime);
}
}
spin_unlock_irq(&tsk->sighand->siglock);
read_unlock(&tasklist_lock);
cputime_to_timeval(cval, &value->it_value);
cputime_to_timeval(cinterval, &value->it_interval);
break;
default:
return(-EINVAL);
}
return 0;
}
开发者ID:FatSunHYS,项目名称:OSCourseDesign,代码行数:67,代码来源:itimer.c
注:本文中的cputime_sub函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论