summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2024-09-03 17:11:51 -0700
committerDave Jiang <dave.jiang@intel.com>2024-09-22 21:05:16 -0700
commita5ab0de0ebaa65e0a75ec0761a2745c66a9d17dc (patch)
tree4b195b3bbd890dcafd534bced9a8add0f676c4e2 /tools/perf/scripts/python/bin
parente91be3ed30d79ccd3e87e3970a26dea844c04919 (diff)
downloadkernel-a5ab0de0ebaa65e0a75ec0761a2745c66a9d17dc.tar.gz
cxl: Calculate region bandwidth of targets with shared upstream link
The current bandwidth calculation aggregates all the targets. This simple method does not take into account where multiple targets sharing under a switch or a root port where the aggregated bandwidth can be greater than the upstream link of the switch. To accurately account for the shared upstream uplink cases, a new update function is introduced by walking from the leaves to the root of the hierarchy and clamp the bandwidth in the process as needed. This process is done when all the targets for a region are present but before the final values are send to the HMAT handling code cached access_coordinate targets. The original perf calculation path was kept to calculate the latency performance data that does not require the shared link consideration. The shared upstream link calculation is done as a second pass when all the endpoints have arrived. Testing is done via qemu with CXL hierarchy. run_qemu[1] is modified to support several CXL hierarchy layouts. The following layouts are tested: HB: Host Bridge RP: Root Port SW: Switch EP: End Point 2 HB 2 RP 2 EP: resulting bandwidth: 624 1 HB 2 RP 2 EP: resulting bandwidth: 624 2 HB 2 RP 2 SW 4 EP: resulting bandwidth: 624 Current testing, perf number from SRAT/HMAT is hacked into the kernel code. However with new QEMU support of Generic Target Port that's incoming, the perf data injection is no longer needed. [1]: https://github.com/pmem/run_qemu Suggested-by: Jonathan Cameron <jonathan.cameron@huawei.com> Link: https://lore.kernel.org/linux-cxl/20240501152503.00002e60@Huawei.com/ Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Alison Schofield <alison.schofield@intel.com> Acked-by: Dan Williams <dan.j.williams@intel.com> Link: https://patch.msgid.link/20240904001316.1688225-3-dave.jiang@intel.com Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions
_el0Will Deacon 2020-08-06vdso/treewide: Add vdso_data pointer argument to __arch_get_hw_counter()Thomas Gleixner 2020-08-03Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/a...Linus Torvalds 2020-07-31Merge branch 'for-next/read-barrier-depends' into for-next/coreCatalin Marinas 2020-07-24arm64/vdso: Add time namespace pageAndrei Vagin 2020-07-21asm/rwonce: Don't pull <asm/barrier.h> into 'asm-generic/rwonce.h'Will Deacon 2020-07-08arm64: Introduce a way to disable the 32bit vdsoMarc Zyngier 2020-03-21arm64: vdso32: Include common headers in the vdso libraryVincenzo Frascino 2020-03-21arm64: vdso: Include common headers in the vdso libraryVincenzo Frascino 2020-03-21arm64: Introduce asm/vdso/processor.hVincenzo Frascino 2020-03-21arm64: vdso32: Code clean upVincenzo Frascino 2020-03-21arm64: Introduce asm/vdso/clocksource.hVincenzo Frascino 2020-02-17ARM/arm64: vdso: Use common vdso clock mode storageThomas Gleixner 2020-01-14arm64: compat: vdso: Remove unused VDSO_HAS_32BIT_FALLBACKVincenzo Frascino 2020-01-14arm64: compat: vdso: Expose BUILD_VDSO32Vincenzo Frascino 2019-11-04timekeeping/vsyscall: Update VDSO data unconditionallyHuacai Chen 2019-10-07arm64: vdso32: Detect binutils support for dmb ishldVincenzo Frascino 2019-07-31arm64: compat: vdso: Use legacy syscalls as fallbackThomas Gleixner 2019-06-26arm64: compat: Fix __arch_get_hw_counter() implementationVincenzo Frascino 2019-06-26arm64: Fix __arch_get_hw_counter() implementationVincenzo Frascino 2019-06-26arm64: compat: No need for pre-ARMv7 barriers on an ARMv8 systemCatalin Marinas 2019-06-22arm64: compat: Add vDSOVincenzo Frascino 2019-06-22arm64: vdso: Substitute gettimeofday() with C implementationVincenzo Frascino