8547e28bd5
23233-hvm-cr-access.patch 23234-svm-decode-assist-base.patch 23235-svm-decode-assist-crs.patch 23236-svm-decode-assist-invlpg.patch 23238-svm-decode-assist-insn-fetch.patch 23303-cpufreq-misc.patch 23304-amd-oprofile-strings.patch 23305-amd-fam15-xenoprof.patch 23306-amd-fam15-vpmu.patch 23334-amd-fam12+14-vpmu.patch 23338-vtd-force-intremap.patch - fate#310957 - Update to Xen 4.1.1-rc1 c/s 23064 - xentrace: dynamic tracebuffer allocation xen-unstable.xentrace.dynamic_tbuf.patch xen-unstable.xentrace.empty_t_info_pages.patch xen-unstable.xentrace.verbose.patch xen-unstable.xentrace.no_gdprintk.patch xen-unstable.xentrace.comments.patch xen-unstable.xentrace.printk_prefix.patch xen-unstable.xentrace.remove_debug_printk.patch xen-unstable.xentrace.t_info_pages-formula.patch xen-unstable.xentrace.register_cpu_notifier-boot_time.patch xen-unstable.xentrace.t_info_page-overflow.patch xen-unstable.xentrace.t_info_first_offset.patch xen-unstable.xentrace.data_size__read_mostly.patch xen-unstable.xentrace.__insert_record-dst-type.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=124
76 lines
3.2 KiB
Diff
76 lines
3.2 KiB
Diff
References: FATE#309900
|
|
|
|
# HG changeset patch
|
|
# User Andre Przywara <andre.przywara@amd.com>
|
|
# Date 1303116553 -3600
|
|
# Node ID bf7afd48339a18cd86d89337f3c055045fb78d3b
|
|
# Parent 1276926e3795b11ef6ac2f59df900d8e0ba9f54b
|
|
svm: add bit definitions for SVM DecodeAssist
|
|
|
|
Chapter 15.33 of recent APM Vol.2 manuals describe some additions
|
|
to SVM called DecodeAssist. Add the newly added fields to the VMCB
|
|
structure and name the associated CPUID bit.
|
|
|
|
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
|
|
|
|
# HG changeset patch
|
|
# User Keir Fraser <keir@xen.org>
|
|
# Date 1303117802 -3600
|
|
# Node ID 381ab77db71a4739b8a4f4fdad4ef3504999f998
|
|
# Parent e324c4d1dd6eeb9417fec513640ca795bd0f5dd4
|
|
svm: decode-assists feature must depend on nextrip feature.
|
|
|
|
...since the decode-assist fast paths assume nextrip vmcb field is
|
|
valid.
|
|
|
|
Signed-off-by: Keir Fraser <keir@xen.org>
|
|
|
|
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
|
|
===================================================================
|
|
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/svm.c
|
|
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
|
|
@@ -928,11 +928,16 @@ struct hvm_function_table * __init start
|
|
|
|
printk("SVM: Supported advanced features:\n");
|
|
|
|
+ /* DecodeAssists fast paths assume nextrip is valid for fast rIP update. */
|
|
+ if ( !cpu_has_svm_nrips )
|
|
+ clear_bit(SVM_FEATURE_DECODEASSISTS, &svm_feature_flags);
|
|
+
|
|
#define P(p,s) if ( p ) { printk(" - %s\n", s); printed = 1; }
|
|
P(cpu_has_svm_npt, "Nested Page Tables (NPT)");
|
|
P(cpu_has_svm_lbrv, "Last Branch Record (LBR) Virtualisation");
|
|
P(cpu_has_svm_nrips, "Next-RIP Saved on #VMEXIT");
|
|
P(cpu_has_svm_cleanbits, "VMCB Clean Bits");
|
|
+ P(cpu_has_svm_decode, "DecodeAssists");
|
|
P(cpu_has_pause_filter, "Pause-Intercept Filter");
|
|
#undef P
|
|
|
|
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/svm.h
|
|
===================================================================
|
|
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/svm/svm.h
|
|
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/svm.h
|
|
@@ -80,6 +80,7 @@ extern u32 svm_feature_flags;
|
|
#define cpu_has_svm_svml cpu_has_svm_feature(SVM_FEATURE_SVML)
|
|
#define cpu_has_svm_nrips cpu_has_svm_feature(SVM_FEATURE_NRIPS)
|
|
#define cpu_has_svm_cleanbits cpu_has_svm_feature(SVM_FEATURE_VMCBCLEAN)
|
|
+#define cpu_has_svm_decode cpu_has_svm_feature(SVM_FEATURE_DECODEASSISTS)
|
|
#define cpu_has_pause_filter cpu_has_svm_feature(SVM_FEATURE_PAUSEFILTER)
|
|
|
|
#endif /* __ASM_X86_HVM_SVM_H__ */
|
|
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/vmcb.h
|
|
===================================================================
|
|
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/svm/vmcb.h
|
|
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/vmcb.h
|
|
@@ -432,7 +432,9 @@ struct vmcb_struct {
|
|
vmcbcleanbits_t cleanbits; /* offset 0xC0 */
|
|
u32 res09; /* offset 0xC4 */
|
|
u64 nextrip; /* offset 0xC8 */
|
|
- u64 res10a[102]; /* offset 0xD0 pad to save area */
|
|
+ u8 guest_ins_len; /* offset 0xD0 */
|
|
+ u8 guest_ins[15]; /* offset 0xD1 */
|
|
+ u64 res10a[100]; /* offset 0xE0 pad to save area */
|
|
|
|
svm_segment_register_t es; /* offset 1024 - cleanbit 8 */
|
|
svm_segment_register_t cs; /* cleanbit 8 */
|