android_kernel_xiaomi_sm8350/arch/ia64/kernel
Martin Schwidefsky 79741dd357 [PATCH] idle cputime accounting
The cpu time spent by the idle process actually doing something is
currently accounted as idle time. This is plain wrong, the architectures
that support VIRT_CPU_ACCOUNTING=y can do better: distinguish between the
time spent doing nothing and the time spent by idle doing work. The first
is accounted with account_idle_time and the second with account_system_time.
The architectures that use the account_xxx_time interface directly and not
the account_xxx_ticks interface now need to do the check for the idle
process in their arch code. In particular to improve the system vs true
idle time accounting the arch code needs to measure the true idle time
instead of just testing for the idle process.
To improve the tick based accounting as well we would need an architecture
primitive that can tell us if the pt_regs of the interrupted context
points to the magic instruction that halts the cpu.

In addition idle time is no more added to the stime of the idle process.
This field now contains the system time of the idle process as it should
be. On systems without VIRT_CPU_ACCOUNTING this will always be zero as
every tick that occurs while idle is running will be accounted as idle
time.

This patch contains the necessary common code changes to be able to
distinguish idle system time and true idle time. The architectures with
support for VIRT_CPU_ACCOUNTING need some changes to exploit this.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-12-31 15:11:46 +01:00
..
cpufreq [IA64] improper printk format in acpi-cpufreq 2008-07-17 11:11:17 -07:00
.gitignore [IA64] Cleanup generated file not ignored by .gitignore 2008-08-04 11:06:16 -07:00
acpi-ext.c
acpi-processor.c
acpi.c [IA64] fix boot panic caused by offline CPUs 2008-11-06 09:28:27 -08:00
asm-offsets.c ia64/pv_ops/xen: elf note based xen startup. 2008-10-17 10:02:21 -07:00
audit.c
brl_emu.c
crash_dump.c kdump: make elfcorehdr_addr independent of CONFIG_PROC_VMCORE 2008-10-20 08:52:39 -07:00
crash.c
cyclone.c
efi_stub.S
efi.c always reserve elfcore header memory in crash kernel 2008-10-20 08:52:40 -07:00
entry.h
entry.S [IA64] Rationalize kernel mode alignment checking 2008-11-20 13:27:12 -08:00
err_inject.c sysdev: Pass the attribute to the low level sysdev show/store function 2008-07-21 21:55:02 -07:00
esi_stub.S
esi.c
fsys.S
fsyscall_gtod_data.h
gate-data.S
gate.lds.S
gate.S
head.S [IA64] Rationalize kernel mode alignment checking 2008-11-20 13:27:12 -08:00
ia64_ksyms.c
init_task.c
iosapic.c [IA64] Move include/asm-ia64 to arch/ia64/include/asm 2008-08-01 10:21:21 -07:00
irq_ia64.c [IA64] pvops: add hooks, pv_irq_ops, to paravirtualized irq related operations. 2008-05-27 15:11:10 -07:00
irq_lsapic.c
irq.c
ivt.S ia64/pv_ops: fix paravirtualization of ivt.S with CONFIG_SMP=n 2008-10-17 09:50:09 -07:00
jprobes.S [IA64] Move include/asm-ia64 to arch/ia64/include/asm 2008-08-01 10:21:21 -07:00
kprobes.c kprobes: improve kretprobe scalability with hashed locking 2008-07-25 10:53:30 -07:00
machine_kexec.c
machvec.c
Makefile Pull vtd-iommu into release branch 2008-10-17 13:52:22 -07:00
mca_asm.S
mca_drv_asm.S
mca_drv.c CRED: Wrap task credential accesses in the IA64 arch 2008-11-14 10:38:37 +11:00
mca_drv.h
mca.c [IA64] use mprintk instead of printk, in ia64_mca_modify_original_stack 2008-11-20 13:31:10 -08:00
minstate.h [IA64] pvops: paravirtualize minstate.h. 2008-05-27 15:02:17 -07:00
module.c [IA64] fix compile failure with non modular builds 2008-09-10 10:46:32 -07:00
msi_ia64.c [IA64] Add Variable Page Size and IA64 Support in Intel IOMMU 2008-10-17 12:14:13 -07:00
nr-irqs.c ia64/pv_ops/xen: define the nubmer of irqs which xen needs. 2008-10-17 10:06:59 -07:00
numa.c
pal.S
palinfo.c smp_call_function: get rid of the unused nonatomic/retry argument 2008-06-26 11:24:35 +02:00
paravirt_inst.h ia64/pv_ops: paravirtualized instruction checker. 2008-10-17 10:12:54 -07:00
paravirt.c [IA64] ia64/pv_ops/pv_cpu_ops: fix _IA64_REG_IP case. 2008-11-20 13:41:20 -08:00
paravirtentry.S [IA64] pvops: paravirtualize entry.S 2008-05-27 15:08:01 -07:00
patch.c
pci-dma.c [IA64] remove duplicate include iommu.h 2008-11-20 13:38:16 -08:00
pci-swiotlb.c [IA64] Add Variable Page Size and IA64 Support in Intel IOMMU 2008-10-17 12:14:13 -07:00
perfmon_default_smpl.c
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon_montecito.h
perfmon.c CRED: Use RCU to access another task's creds and to release a task's own creds 2008-11-14 10:39:19 +11:00
process.c Pull pv_ops-xen into release branch 2008-10-17 13:51:28 -07:00
ptrace.c [IA64] utrace use generic trace hook 2008-10-06 10:43:06 -07:00
relocate_kernel.S
sal.c [IA64] Update check_sal_cache_flush to use platform_send_ipi() 2008-06-11 16:40:33 -07:00
salinfo.c
setup.c [IA64] Reserve elfcorehdr memory in CONFIG_CRASH_DUMP 2008-11-07 09:51:55 -08:00
sigframe.h
signal.c CRED: Wrap task credential accesses in the IA64 arch 2008-11-14 10:38:37 +11:00
smp.c [IA64] Shrink shadow_flush_counts to a short array to save 8k of per_cpu area. 2008-08-18 15:39:48 -07:00
smpboot.c Merge branches 'sched/devel', 'sched/cpu-hotplug', 'sched/cpusets' and 'sched/urgent' into sched/core 2008-10-08 11:31:02 +02:00
sys_ia64.c flag parameters: pipe 2008-07-24 10:47:28 -07:00
time.c [PATCH] idle cputime accounting 2008-12-31 15:11:46 +01:00
topology.c [IA64] Clear up section mismatch with arch_unregister_cpu() 2008-12-09 10:08:44 -08:00
traps.c
unaligned.c
uncached.c smp_call_function: get rid of the unused nonatomic/retry argument 2008-06-26 11:24:35 +02:00
unwind_decoder.c
unwind_i.h
unwind.c
vmlinux.lds.S [IA64] Put the space for cpu0 per-cpu area into .data section 2008-09-29 16:39:19 -07:00