kernel_optimize_test/Documentation/x86
Reinette Chatre dd45407c0b x86/intel_rdt: Use perf infrastructure for measurements
The success of a cache pseudo-locked region is measured using
performance monitoring events that are programmed directly at the time
the user requests a measurement.

Modifying the performance event registers directly is not appropriate
since it circumvents the in-kernel perf infrastructure that exists to
manage these resources and provide resource arbitration to the
performance monitoring hardware.

The cache pseudo-locking measurements are modified to use the in-kernel
perf infrastructure. Performance events are created and validated with
the appropriate perf API. The performance counters are still read as
directly as possible to avoid the additional cache hits. This is
done safely by first ensuring with the perf API that the counters have
been programmed correctly and only accessing the counters in an
interrupt disabled section where they are not able to be moved.

As part of the transition to the in-kernel perf infrastructure the L2
and L3 measurements are split into two separate measurements that can
be triggered independently. This separation prevents additional cache
misses incurred during the extra testing code used to decide if a
L2 and/or L3 measurement should be made.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: fenghua.yu@intel.com
Cc: tony.luck@intel.com
Cc: peterz@infradead.org
Cc: acme@kernel.org
Cc: gavin.hindman@intel.com
Cc: jithu.joseph@intel.com
Cc: dave.hansen@intel.com
Cc: hpa@zytor.com
Link: https://lkml.kernel.org/r/fc24e728b446404f42c78573c506e98cd0599873.1537468643.git.reinette.chatre@intel.com
2018-09-28 22:48:27 +02:00
..
i386 doc: spelling error changes 2014-05-05 15:32:05 +02:00
x86_64 Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-08-13 18:28:19 -07:00
00-INDEX Documentation: Fix early-microcode.txt references after file rename 2018-03-27 09:51:23 +02:00
amd-memory-encryption.txt Documentation/x86: Add AMD Secure Encrypted Virtualization (SEV) description 2017-11-07 15:35:54 +01:00
boot.txt docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
earlyprintk.txt x86/doc: Fix Documentation/x86/earlyprintk.txt 2018-09-10 15:09:30 +02:00
entry_64.txt x86/asm/entry/64: Update path names 2015-07-02 11:08:50 +02:00
exception-tables.txt x86/mm: Expand the exception table logic to allow new handling options 2016-02-18 09:21:46 +01:00
intel_mpx.txt x86/Documentation: Fix various typos in Documentation/x86/ files 2016-07-01 10:00:10 +02:00
intel_rdt_ui.txt x86/intel_rdt: Use perf infrastructure for measurements 2018-09-28 22:48:27 +02:00
kernel-stacks Documentation/x86: Rename IRQSTACKSIZE to IRQ_STACK_SIZE 2015-08-24 11:42:41 -06:00
microcode.txt firmware: Fix up docs referring to FIRMWARE_IN_KERNEL 2018-01-25 12:46:30 +01:00
mtrr.txt x86/mm/mtrr: Remove kernel internal MTRR interfaces: unexport mtrr_add() and mtrr_del() 2015-08-28 10:09:28 +02:00
orc-unwinder.txt x86/unwind: Rename unwinder config options to 'CONFIG_UNWINDER_*' 2017-10-14 10:12:12 +02:00
pat.txt x86/pat: Document the PAT initialization sequence 2016-03-29 12:23:27 +02:00
protection-keys.txt x86/pkeys: Update documentation about availability 2017-11-21 09:34:52 +01:00
pti.txt x86/pti: Document fix wrong index 2018-01-19 16:31:29 +01:00
tlb.txt x86/Documentation: Fix various typos in Documentation/x86/ files 2016-07-01 10:00:10 +02:00
topology.txt x86/topology: Fix function name in documentation 2018-02-23 08:40:12 +01:00
usb-legacy-support.txt
zero-page.txt Merge branch 'linus' into WIP.x86/boot, to fix up conflicts and to pick up updates 2017-03-01 09:02:26 +01:00