[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] x86/svm: add support for pause filtering threshold
Looks good. Reviewed-by: Babu Moger <babu.moger@xxxxxxx> > -----Original Message----- > From: Woods, Brian > Sent: Tuesday, February 20, 2018 6:13 PM > To: xen-devel@xxxxxxxxxxxxx > Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>; Suthikulpanit, Suravee > <Suravee.Suthikulpanit@xxxxxxx>; Jan Beulich <jbeulich@xxxxxxxx>; > Andrew Cooper <andrew.cooper3@xxxxxxxxxx>; Woods, Brian > <Brian.Woods@xxxxxxx> > Subject: [PATCH 1/2] x86/svm: add support for pause filtering threshold > > Add support for enabling the pause filtering threshold feature. This > causes the pause filtering count to reset if there's pause filtering > threshold cycles or greater between pauses. See AMD APM Vol 2 Section > 15.14.4 for more details. > > The values of the pause filtering count and threshold were found by > iterating over different values of the count and threshold while running > kernbench and a pi spigot algorithm with yields placed in it. A > balanced setting for both variable provides: > > (Using averaged elapsed time with kernbench) > old = 852.0 > new = 848.8 > improvement = .4% > > For system without pause filtering threshold, the change, from 3000 to > 4000 for the count, should not negatively effect system performance. > > Signed-off-by: Brian Woods <brian.woods@xxxxxxx> > --- > xen/include/asm-x86/hvm/svm/svm.h | 5 ++++- > xen/include/asm-x86/hvm/svm/vmcb.h | 3 ++- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/xen/include/asm-x86/hvm/svm/svm.h b/xen/include/asm- > x86/hvm/svm/svm.h > index 462cb89b7c..593546fb56 100644 > --- a/xen/include/asm-x86/hvm/svm/svm.h > +++ b/xen/include/asm-x86/hvm/svm/svm.h > @@ -64,6 +64,7 @@ extern u32 svm_feature_flags; > #define SVM_FEATURE_FLUSHBYASID 6 /* TLB flush by ASID support */ > #define SVM_FEATURE_DECODEASSISTS 7 /* Decode assists support */ > #define SVM_FEATURE_PAUSEFILTER 10 /* Pause intercept filter support > */ > +#define SVM_FEATURE_PAUSETHRESH 12 /* Pause intercept filter support > */ > #define SVM_FEATURE_VLOADSAVE 15 /* virtual vmload/vmsave */ > #define SVM_FEATURE_VGIF 16 /* Virtual GIF */ > > @@ -76,10 +77,12 @@ extern u32 svm_feature_flags; > #define cpu_has_svm_decode > cpu_has_svm_feature(SVM_FEATURE_DECODEASSISTS) > #define cpu_has_svm_vgif cpu_has_svm_feature(SVM_FEATURE_VGIF) > #define cpu_has_pause_filter > cpu_has_svm_feature(SVM_FEATURE_PAUSEFILTER) > +#define cpu_has_pause_thresh > cpu_has_svm_feature(SVM_FEATURE_PAUSETHRESH) > #define cpu_has_tsc_ratio > cpu_has_svm_feature(SVM_FEATURE_TSCRATEMSR) > #define cpu_has_svm_vloadsave > cpu_has_svm_feature(SVM_FEATURE_VLOADSAVE) > > -#define SVM_PAUSEFILTER_INIT 3000 > +#define SVM_PAUSEFILTER_INIT 4000 > +#define SVM_PAUSETHRESH_INIT 1000 > > /* TSC rate */ > #define DEFAULT_TSC_RATIO 0x0000000100000000ULL > diff --git a/xen/include/asm-x86/hvm/svm/vmcb.h b/xen/include/asm- > x86/hvm/svm/vmcb.h > index 9d5dfc58f2..de07429dff 100644 > --- a/xen/include/asm-x86/hvm/svm/vmcb.h > +++ b/xen/include/asm-x86/hvm/svm/vmcb.h > @@ -412,7 +412,7 @@ struct vmcb_struct { > u64 res04; /* offset 0x28 */ > u64 res05; /* offset 0x30 */ > u32 res06; /* offset 0x38 */ > - u16 res06a; /* offset 0x3C */ > + u16 _pause_filter_thresh; /* offset 0x3C - cleanbit 0 */ > u16 _pause_filter_count; /* offset 0x3E - cleanbit 0 */ > u64 _iopm_base_pa; /* offset 0x40 - cleanbit 1 */ > u64 _msrpm_base_pa; /* offset 0x48 - cleanbit 1 */ > @@ -568,6 +568,7 @@ VMCB_ACCESSORS(exception_intercepts, intercepts) > VMCB_ACCESSORS(general1_intercepts, intercepts) > VMCB_ACCESSORS(general2_intercepts, intercepts) > VMCB_ACCESSORS(pause_filter_count, intercepts) > +VMCB_ACCESSORS(pause_filter_thresh, intercepts) > VMCB_ACCESSORS(tsc_offset, intercepts) > VMCB_ACCESSORS(iopm_base_pa, iopm) > VMCB_ACCESSORS(msrpm_base_pa, iopm) > -- > 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |