]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: SVM: Add pause filter threshold
authorBabu Moger <babu.moger@amd.com>
Fri, 16 Mar 2018 20:37:25 +0000 (16:37 -0400)
committerRadim Krčmář <rkrcmar@redhat.com>
Wed, 28 Mar 2018 20:47:06 +0000 (22:47 +0200)
commit232114f8bbdd0803bf8c9c6ab4b0a353feb597a3
tree966caf272065fc833e8e18738e5fe47d510d511c
parent0d8bb3a0fc2d415be1b803f8f5bcf1b6f2a27e1a
KVM: SVM: Add pause filter threshold

This patch adds the support for pause filtering threshold. This feature
support is indicated by CPUID Fn8000_000A_EDX. See AMD APM Vol 2 Section
15.14.4 Pause Intercept Filtering for more details.

In this mode, a 16-bit pause filter threshold field is added in VMCB.
The threshold value is a cycle count that is used to reset the pause
counter.  As with simple pause filtering, VMRUN loads the pause count
value from VMCB into an internal counter. Then, on each pause instruction
the hardware checks the elapsed number of cycles since the most recent
pause instruction against the pause Filter Threshold. If the elapsed cycle
count is greater than the pause filter threshold, then the internal pause
count is reloaded from VMCB and execution continues. If the elapsed cycle
count is less than the pause filter threshold, then the internal pause
count is decremented. If the count value is less than zero and pause
intercept is enabled, a #VMEXIT is triggered. If advanced pause filtering
is supported and pause filter threshold field is set to zero, the filter
will operate in the simpler, count only mode.

Signed-off-by: Babu Moger <babu.moger@amd.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
arch/x86/include/asm/svm.h
arch/x86/kvm/svm.c