config HAVE_VIRT_CPU_ACCOUNTING
        bool
 
+config HAVE_IRQ_TIME_ACCOUNTING
+       bool
+       help
+         Archs need to ensure they use a high enough resolution clock to
+         support irq time accounting and then call enable_sched_clock_irqtime().
+
 source "kernel/gcov/Kconfig"
 
        select KTIME_SCALAR if X86_32
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
+       select HAVE_IRQ_TIME_ACCOUNTING
 
 config INSTRUCTION_DECODER
        def_bool (KPROBES || PERF_EVENTS || UPROBES)
          making when dealing with multi-core CPU chips at a cost of slightly
          increased overhead in some places. If unsure say N here.
 
-config IRQ_TIME_ACCOUNTING
-       bool "Fine granularity task level IRQ time accounting"
-       default n
-       ---help---
-         Select this option to enable fine granularity task irq time
-         accounting. This is done by reading a timestamp on each
-         transitions between softirq and hardirq state, so there can be a
-         small performance impact.
-
-         If in doubt, say N here.
-
 source "kernel/Kconfig.preempt"
 
 config X86_UP_APIC
 
 
 menu "CPU/Task time and stats accounting"
 
+choice
+       prompt "Cputime accounting"
+       default TICK_CPU_ACCOUNTING if !PPC64
+       default VIRT_CPU_ACCOUNTING if PPC64
+
+# Kind of a stub config for the pure tick based cputime accounting
+config TICK_CPU_ACCOUNTING
+       bool "Simple tick based cputime accounting"
+       depends on !S390
+       help
+         This is the basic tick based cputime accounting that maintains
+         statistics about user, system and idle time spent on per jiffies
+         granularity.
+
+         If unsure, say Y.
+
 config VIRT_CPU_ACCOUNTING
        bool "Deterministic task and CPU time accounting"
        depends on HAVE_VIRT_CPU_ACCOUNTING
-       default y if PPC64
        help
          Select this option to enable more accurate task and CPU time
          accounting.  This is done by reading a CPU counter on each
          this also enables accounting of stolen time on logically-partitioned
          systems.
 
+config IRQ_TIME_ACCOUNTING
+       bool "Fine granularity task level IRQ time accounting"
+       depends on HAVE_IRQ_TIME_ACCOUNTING
+       help
+         Select this option to enable fine granularity task irq time
+         accounting. This is done by reading a timestamp on each
+         transitions between softirq and hardirq state, so there can be a
+         small performance impact.
+
+         If in doubt, say N here.
+
+endchoice
+
 config BSD_PROCESS_ACCT
        bool "BSD Process Accounting"
        help