linux_dsm_epyc7002/arch/powerpc/platforms
Naveen N. Rao d62c8deeb6 powerpc/pseries: Provide vcpu dispatch statistics
For Shared Processor LPARs, the POWER Hypervisor maintains a
relatively static mapping of the LPAR processors (vcpus) to physical
processor chips (representing the "home" node) and tries to always
dispatch vcpus on their associated physical processor chip. However,
under certain scenarios, vcpus may be dispatched on a different
processor chip (away from its home node). The actual physical
processor number on which a certain vcpu is dispatched is available to
the guest in the 'processor_id' field of each DTL entry.

The guest can discover the home node of each vcpu through the
H_HOME_NODE_ASSOCIATIVITY(flags=1) hcall. The guest can also discover
the associativity of physical processors, as represented in the DTL
entry, through the H_HOME_NODE_ASSOCIATIVITY(flags=2) hcall.

These can then be compared to determine if the vcpu was dispatched on
its home node or not. If the vcpu was not dispatched on the home node,
it is possible to determine if the vcpu was dispatched in a different
chip, socket or drawer.

Introduce a procfs file /proc/powerpc/vcpudispatch_stats that can be
used to obtain these statistics. Writing '1' to this file enables
collecting the statistics, while writing '0' disables the statistics.
The statistics themselves are available by reading the procfs file. By
default, the DTLB log for each vcpu is processed 50 times a second so
as not to miss any entries. This processing frequency can be changed
through /proc/powerpc/vcpudispatch_stats_freq.

Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2019-07-04 22:27:09 +10:00
..
4xx powerpc/4xx/uic: clear pending interrupt after irq type/pol change 2019-07-03 15:19:36 +10:00
8xx powerpc/8xx: Fix possible device node reference leak 2019-04-20 22:02:35 +10:00
40x powerpc/Kconfig: Clean up formatting 2019-07-04 16:55:10 +10:00
44x powerpc/Kconfig: Clean up formatting 2019-07-04 16:55:10 +10:00
52xx *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
82xx powerpc/kconfig: remove CONFIG_6xx 2018-11-26 22:33:37 +11:00
83xx powerpc/83xx: Add missing of_node_put() after of_device_is_available() 2019-04-20 22:02:27 +10:00
85xx powerpc/Kconfig: Clean up formatting 2019-07-04 16:55:10 +10:00
86xx powerpc/Kconfig: Clean up formatting 2019-07-04 16:55:10 +10:00
512x treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 40 2019-05-24 17:27:12 +02:00
amigaone treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
cell powerpc/cell: set no_llseek in spufs_cntl_fops 2019-07-04 18:05:09 +10:00
chrp treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
embedded6xx powerpc/embedded6xx: Remove unused functions holly_power_off and holly_halt 2019-04-20 22:02:12 +10:00
maple powerpc/Kconfig: Clean up formatting 2019-07-04 16:55:10 +10:00
pasemi treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
powermac Merge branch 'fixes' into next 2019-07-01 14:04:39 +10:00
powernv powerpc/powernv-eeh: Consisely desribe what this file does 2019-07-03 15:19:36 +10:00
ps3 treewide: add checks for the return value of memblock_alloc*() 2019-03-12 10:04:02 -07:00
pseries powerpc/pseries: Provide vcpu dispatch statistics 2019-07-04 22:27:09 +10:00
fsl_uli1575.c
Kconfig Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
Kconfig.cputype hugetlb: allow to free gigantic pages regardless of the configuration 2019-05-14 09:47:47 -07:00
Makefile powerpc: Add -Werror at arch/powerpc level 2018-10-19 00:56:17 +11:00