Example #1
0
static cputime_t irqtime_account_update(u64 irqtime, int idx, cputime_t maxtime)
{
	u64 *cpustat = kcpustat_this_cpu->cpustat;
	cputime_t irq_cputime;

	irq_cputime = nsecs_to_cputime64(irqtime) - cpustat[idx];
	irq_cputime = min(irq_cputime, maxtime);
	cpustat[idx] += irq_cputime;

	return irq_cputime;
}
Example #2
0
static int irqtime_account_si_update(void)
{
	u64 *cpustat = kcpustat_this_cpu->cpustat;
	unsigned long flags;
	u64 latest_ns;
	int ret = 0;

	local_irq_save(flags);
	latest_ns = this_cpu_read(cpu_softirq_time);
	if (nsecs_to_cputime64(latest_ns) > cpustat[CPUTIME_SOFTIRQ])
		ret = 1;
	local_irq_restore(flags);
	return ret;
}