|
|
d740ea |
From 7fa8107debfd4c659b77a8ba12b96144dfbdc113 Mon Sep 17 00:00:00 2001
|
|
|
d740ea |
From: "plai@redhat.com" <plai@redhat.com>
|
|
|
d740ea |
Date: Mon, 4 Feb 2019 17:29:44 +0100
|
|
|
d740ea |
Subject: [PATCH 1/3] x86/cpu: Enable CLDEMOTE(Demote Cache Line) cpu feature
|
|
|
d740ea |
|
|
|
d740ea |
RH-Author: plai@redhat.com
|
|
|
d740ea |
Message-id: <1549301384-19698-1-git-send-email-plai@redhat.com>
|
|
|
d740ea |
Patchwork-id: 84205
|
|
|
d740ea |
O-Subject: [RHEL7.7 qemu-kvm PATCH BZ 1537773 RESEND] x86/cpu: Enable CLDEMOTE(Demote Cache Line) cpu feature
|
|
|
d740ea |
Bugzilla: 1537773
|
|
|
d740ea |
RH-Acked-by: Bandan Das <bsd@redhat.com>
|
|
|
d740ea |
RH-Acked-by: Eduardo Habkost <ehabkost@redhat.com>
|
|
|
d740ea |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
d740ea |
|
|
|
d740ea |
From: Jingqi Liu <jingqi.liu@intel.com>
|
|
|
d740ea |
|
|
|
d740ea |
The CLDEMOTE instruction hints to hardware that the cache line that
|
|
|
d740ea |
contains the linear address should be moved("demoted") from
|
|
|
d740ea |
the cache(s) closest to the processor core to a level more distant
|
|
|
d740ea |
from the processor core. This may accelerate subsequent accesses
|
|
|
d740ea |
to the line by other cores in the same coherence domain,
|
|
|
d740ea |
especially if the line was written by the core that demotes the line.
|
|
|
d740ea |
|
|
|
d740ea |
Intel Snow Ridge has added new cpu feature, CLDEMOTE.
|
|
|
d740ea |
The new cpu feature needs to be exposed to guest VM.
|
|
|
d740ea |
|
|
|
d740ea |
The bit definition:
|
|
|
d740ea |
CPUID.(EAX=7,ECX=0):ECX[bit 25] CLDEMOTE
|
|
|
d740ea |
|
|
|
d740ea |
The release document ref below link:
|
|
|
d740ea |
https://software.intel.com/sites/default/files/managed/c5/15/\
|
|
|
d740ea |
architecture-instruction-set-extensions-programming-reference.pdf
|
|
|
d740ea |
|
|
|
d740ea |
Signed-off-by: Jingqi Liu <jingqi.liu@intel.com>
|
|
|
d740ea |
Message-Id: <1525406253-54846-1-git-send-email-jingqi.liu@intel.com>
|
|
|
d740ea |
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
|
|
|
d740ea |
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
|
|
|
d740ea |
(cherry picked from commit 0da0fb062841d0dcd8ba47e4a989d2e952cdf0ff)
|
|
|
d740ea |
Signed-off-by: Paul Lai <plai@redhat.com>
|
|
|
d740ea |
|
|
|
d740ea |
Resolved Conflicts:
|
|
|
d740ea |
target/i386/cpu.c [doesn't exist]
|
|
|
d740ea |
changes made to target-i386/cpu.c
|
|
|
d740ea |
target/i386/cpu.h [doesn't exist]
|
|
|
d740ea |
changes made to target-i386/cpu.h
|
|
|
d740ea |
|
|
|
d740ea |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
d740ea |
---
|
|
|
d740ea |
target-i386/cpu.c | 2 +-
|
|
|
d740ea |
target-i386/cpu.h | 1 +
|
|
|
d740ea |
2 files changed, 2 insertions(+), 1 deletion(-)
|
|
|
d740ea |
|
|
|
d740ea |
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
|
|
|
d740ea |
index a36483e..c9603df 100644
|
|
|
d740ea |
--- a/target-i386/cpu.c
|
|
|
d740ea |
+++ b/target-i386/cpu.c
|
|
|
d740ea |
@@ -162,7 +162,7 @@ static const char *cpuid_7_0_ecx_feature_name[] = {
|
|
|
d740ea |
"avx512bitalg", NULL, "avx512-vpopcntdq", NULL,
|
|
|
d740ea |
NULL, NULL, NULL, NULL,
|
|
|
d740ea |
NULL, NULL, "rdpid", NULL,
|
|
|
d740ea |
- NULL, NULL, NULL, NULL,
|
|
|
d740ea |
+ NULL, "cldemote", NULL, NULL,
|
|
|
d740ea |
NULL, NULL, NULL, NULL,
|
|
|
d740ea |
};
|
|
|
d740ea |
|
|
|
d740ea |
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
|
|
|
d740ea |
index 73437f1..5d47ab8 100644
|
|
|
d740ea |
--- a/target-i386/cpu.h
|
|
|
d740ea |
+++ b/target-i386/cpu.h
|
|
|
d740ea |
@@ -593,6 +593,7 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
|
|
|
d740ea |
#define CPUID_7_0_ECX_AVX512BITALG (1U << 12)
|
|
|
d740ea |
#define CPUID_7_0_ECX_AVX512_VPOPCNTDQ (1U << 14) /* POPCNT for vectors of DW/QW */
|
|
|
d740ea |
#define CPUID_7_0_ECX_RDPID (1U << 22)
|
|
|
d740ea |
+#define CPUID_7_0_ECX_CLDEMOTE (1U << 25) /* CLDEMOTE Instruction */
|
|
|
d740ea |
|
|
|
d740ea |
#define CPUID_7_0_EDX_AVX512_4VNNIW (1U << 2) /* AVX512 Neural Network Instructions */
|
|
|
d740ea |
#define CPUID_7_0_EDX_AVX512_4FMAPS (1U << 3) /* AVX512 Multiply Accumulation Single Precision */
|
|
|
d740ea |
--
|
|
|
d740ea |
1.8.3.1
|
|
|
d740ea |
|