linux_dsm_epyc7002/arch/powerpc/mm
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
..
book3s32 powerpc/32s: fix flush_hash_pages() on SMP 2019-05-14 22:58:52 +10:00
book3s64 powerpc/pseries: Move mm/book3s64/vphn.c under platforms/pseries/ 2019-07-04 22:23:38 +10:00
kasan powerpc/kasan: add missing/lost Makefile 2019-05-06 20:21:34 +10:00
nohash powerpc/book3e: move early_alloc_pgtable() to init section 2019-05-03 01:20:24 +10:00
ptdump powerpc/mm: Warn if W+X pages found on boot 2019-05-03 02:54:45 +10:00
copro_fault.c powerpc/mm/hash: Rename KERNEL_REGION_ID to LINEAR_MAP_REGION_ID 2019-04-21 23:12:40 +10:00
dma-noncoherent.c powerpc/mm: change #include "mmu_decl.h" to <mm/mmu_decl.h> 2019-05-02 21:18:58 +10:00
drmem.c powerpc/pseries: Track LMB nid instead of using device tree 2019-04-29 22:27:16 +10:00
fault.c powerpc/mm: Detect bad KUAP faults 2019-04-21 23:06:04 +10:00
highmem.c powerpc/highmem: Change BUG_ON() to WARN_ON() 2019-04-20 22:02:11 +10:00
hugetlbpage.c powerpc/mm: Fix crashes with hugepages & 4K pages 2019-05-15 11:13:35 +10:00
init_32.c powerpc/32: Add KASAN support 2019-05-03 01:20:26 +10:00
init_64.c powerpc/mm: change #include "mmu_decl.h" to <mm/mmu_decl.h> 2019-05-02 21:18:58 +10:00
init-common.c powerpc/mm: fix section mismatch for setup_kup() 2019-05-06 20:21:56 +10:00
Makefile powerpc/mm: fix redundant inclusion of pgtable-frag.o in Makefile 2019-05-06 20:21:56 +10:00
mem.c powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac 2019-06-19 22:31:20 +10:00
mmap.c exec: pass stack rlimit into mm layout functions 2018-04-11 10:28:37 -07:00
mmu_context.c powerpc/mm: convert Book3E 64 to pte_fragment 2019-05-03 01:20:24 +10:00
mmu_decl.h powerpc/mm: print hash info in a helper 2019-05-03 01:20:26 +10:00
numa.c powerpc/pseries: Provide vcpu dispatch statistics 2019-07-04 22:27:09 +10:00
pgtable_32.c powerpc/mm/32s: fix condition that is always true 2019-06-19 20:05:08 +10:00
pgtable_64.c powerpc/64s/radix: ioremap use ioremap_page_range 2019-06-19 20:05:09 +10:00
pgtable-frag.c mm: treewide: remove unused address argument from pte_alloc functions 2019-01-04 13:13:47 -08:00
pgtable.c powerpc/64s: __find_linux_pte() synchronization vs pmdp_invalidate() 2019-06-07 16:28:28 +10:00
slice.c powerpc/mm: define subarch SLB_ADDR_LIMIT_DEFAULT 2019-05-03 01:20:23 +10:00