linux_dsm_epyc7002/arch
Paul Mackerras b6c295df31 KVM: PPC: Book3S HV: Accumulate timing information for real-mode code
This reads the timebase at various points in the real-mode guest
entry/exit code and uses that to accumulate total, minimum and
maximum time spent in those parts of the code.  Currently these
times are accumulated per vcpu in 5 parts of the code:

* rm_entry - time taken from the start of kvmppc_hv_entry() until
  just before entering the guest.
* rm_intr - time from when we take a hypervisor interrupt in the
  guest until we either re-enter the guest or decide to exit to the
  host.  This includes time spent handling hcalls in real mode.
* rm_exit - time from when we decide to exit the guest until the
  return from kvmppc_hv_entry().
* guest - time spend in the guest
* cede - time spent napping in real mode due to an H_CEDE hcall
  while other threads in the same vcore are active.

These times are exposed in debugfs in a directory per vcpu that
contains a file called "timings".  This file contains one line for
each of the 5 timings above, with the name followed by a colon and
4 numbers, which are the count (number of times the code has been
executed), the total time, the minimum time, and the maximum time,
all in nanoseconds.

The overhead of the extra code amounts to about 30ns for an hcall that
is handled in real mode (e.g. H_SET_DABR), which is about 25%.  Since
production environments may not wish to incur this overhead, the new
code is conditional on a new config symbol,
CONFIG_KVM_BOOK3S_HV_EXIT_TIMING.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2015-04-21 15:21:31 +02:00
..
alpha PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
arc ARC: signal handling robustify 2015-03-26 11:19:36 +05:30
arm USB patches for 4.1-rc1 2015-04-13 17:07:21 -07:00
arm64 Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-04-13 11:08:28 -07:00
avr32 avr32: fix integer overflow in ELF_ET_DYN_BASE 2015-04-13 18:48:55 +02:00
blackfin Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2015-02-21 12:59:04 -08:00
c6x arch/c6x/include/asm/pgtable.h: define dummy pgprot_writecombine for !MMU 2015-03-12 18:46:08 -07:00
cris CRIS changes for 3.20 2015-02-15 18:02:02 -08:00
frv Merge branches 'pci/enumeration' and 'pci/virtualization' into next 2015-03-23 17:17:34 -05:00
hexagon all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
ia64 PCI: Assign resources before drivers claim devices (pci_scan_root_bus()) 2015-03-19 10:17:13 -05:00
m32r mm: add missing __PAGETABLE_{PUD,PMD}_FOLDED defines 2015-02-28 09:57:51 -08:00
m68k PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
metag metag: Fix ioremap_wc/ioremap_cached build errors 2015-03-23 12:32:37 +00:00
microblaze Merge branches 'pci/enumeration' and 'pci/virtualization' into next 2015-03-23 17:17:34 -05:00
mips Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-04-13 15:54:50 -07:00
mn10300 Merge branches 'pci/enumeration' and 'pci/virtualization' into next 2015-03-23 17:17:34 -05:00
nios2 nios2: fix cache coherency issue when debug with gdb 2015-04-10 11:10:08 +08:00
openrisc asm-generic: uaccess.h cleanup 2015-02-18 10:02:24 -08:00
parisc parisc: Fix pmd code to depend on PT_NLEVELS value, not on CONFIG_64BIT 2015-03-23 12:28:16 +01:00
powerpc KVM: PPC: Book3S HV: Accumulate timing information for real-mode code 2015-04-21 15:21:31 +02:00
s390 PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
score all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
sh PCI: Cleanup control flow 2015-03-19 10:17:22 -05:00
sparc PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
tile PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
um all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
unicore32 PCI: Assign resources before drivers claim devices (pci_scan_bus()) 2015-03-12 15:04:01 -05:00
x86 PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
xtensa PCI: Assign resources before drivers claim devices (pci_scan_root_bus()) 2015-03-19 10:17:13 -05:00
.gitignore
Kconfig