[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 00/16] x86: indirect call overhead reduction
>>> On 11.07.18 at 15:15, <JBeulich@xxxxxxxx> wrote: > While indirect calls have always been more expensive than direct ones, > their cost has further increased with the Spectre v2 mitigations. In a > number of cases we simply pointlessly use them in the first place. In > many other cases the indirection solely exists to abstract from e.g. > vendor specific hardware details, and hence the pointers used never > change once set. Here we can use alternatives patching to get rid of > the indirection. > > From patch 8 onwards dependencies exist on earlier, yet to be reviewed > patches ("x86/alternatives: fully leverage automatic NOP filling" as well > as the "x86: improve PDX <-> PFN and alike translations" series at the > very least). I nevertheless wanted to enable a first round of review of > the series, the more that some of the patches (not just initial ones) > could perhaps be taken irrespective of those dependencies. > > Further areas where indirect calls could be eliminated (and that I've put > on my todo list in case the general concept here is deemed reasonable) > are IOMMU, cpufreq, vPMU, and XSM. For some of these, the ARM side > would need dealing with as well - I'm not sure whether replacing indirect > calls by direct ones is worthwhile there as well; if not, the wrappers > would simply need to become function invocations in the ARM case. > > 01: VMX: reduce number of posted-interrupt hooks > 02: VMX: don't unconditionally set the tsc_scaling.setup hook > 03: x86/HVM: switch virtual_intr_delivery_enabled() hook to simple boolean > 04: x86/HVM: drop vmfunc_intercept > 05: x86/HVM: add wrapper for hvm_funcs.set_tsc_offset() > 06: x86: allow producing .i or .s for multiply compiled files > 07: x86/shadow: fetch CPL just once in sh_page_fault() > 08: x86/alternatives: allow using assembler macros in favor of C ones > 09: x86: infrastructure to allow converting certain indirect calls to direct > ones > 10: x86/HVM: patch indirect calls through hvm_funcs to direct ones > 11: x86/HVM: patch vINTR indirect calls through hvm_funcs to direct ones > 12: x86: patch ctxt_switch_masking() indirect call to direct one > 13: x86/genapic: drop .target_cpus() hook > 14: x86/genapic: remove indirection from genapic hook accesses > 15: x86/genapic: patch indirect calls to direct ones > 16: x86/cpuidle: patch some indirect calls to direct ones The last patch is wrong for the non-mwait-idle case, and I've therefore dropped it. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |