This series adds a new procfs file /proc/powerpc/vcpudispatch_stats for providing statistics around how the LPAR processors are dispatched by the POWER Hypervisor, in a shared LPAR environment. Patch 6/6 has more details on how the statistics are gathered.
An example output: $ sudo cat /proc/powerpc/vcpudispatch_stats cpu0 6839 4126 0 2683 30 0 6821 18 0 cpu1 2515 1274 0 1229 12 0 2509 6 0 cpu2 2317 1198 0 1109 10 0 2312 5 0 cpu3 2259 1165 0 1088 6 0 2256 3 0 cpu4 2205 1143 0 1056 6 0 2202 3 0 cpu5 2165 1121 0 1038 6 0 2162 3 0 cpu6 2183 1127 0 1050 6 0 2180 3 0 cpu7 2193 1133 0 1052 8 0 2187 6 0 cpu8 2165 1115 0 1032 18 0 2156 9 0 cpu9 2301 1252 0 1033 16 0 2293 8 0 cpu10 2197 1138 0 1041 18 0 2187 10 0 cpu11 2273 1185 0 1062 26 0 2260 13 0 cpu12 2186 1125 0 1043 18 0 2177 9 0 cpu13 2161 1115 0 1030 16 0 2153 8 0 cpu14 2206 1153 0 1033 20 0 2196 10 0 cpu15 2163 1115 0 1032 16 0 2155 8 0 In the output above, for cpu0, we see that there have been 6839 vcpu dispatches since statistics were enabled. The next 5 numbers represent dispatch dispersions without taking the vcpu home nodes into account. - 4126 dispatches were on the same physical cpu as the previous time - 2683 were on a different core, but within the same chip, - while 30 times, a vcpu was dispatched on a different chip compared to its last dispatch. The next 3 numbers represent statistics in relation to the vcpu home node. We see that there have been 6821 dispatches in the vcpu home node, while 18 dispatches were in a different chip. TODO: - Consider need for adding cond_resched() in some places. - More testing, especially on larger machines. - Naveen Naveen N. Rao (6): powerpc/pseries: Use macros for referring to the DTL enable mask powerpc/pseries: Do not save the previous DTL mask value powerpc/pseries: Factor out DTL buffer allocation and registration routines powerpc/pseries: Generalize hcall_vphn() powerpc/pseries: Introduce helpers to gatekeep DTLB usage powerpc/pseries: Provide vcpu dispatch statistics arch/powerpc/include/asm/lppaca.h | 11 + arch/powerpc/include/asm/plpar_wrappers.h | 4 + arch/powerpc/include/asm/topology.h | 4 + arch/powerpc/mm/book3s64/vphn.h | 8 + arch/powerpc/mm/numa.c | 139 +++++- arch/powerpc/platforms/pseries/dtl.c | 22 +- arch/powerpc/platforms/pseries/lpar.c | 543 +++++++++++++++++++++- arch/powerpc/platforms/pseries/setup.c | 34 +- 8 files changed, 690 insertions(+), 75 deletions(-) -- 2.21.0