|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RESEND PATCH v4 09/10] vmx: Add VMX RDTSC(P) scaling support
>>> On 19.01.16 at 03:55, <haozhong.zhang@xxxxxxxxx> wrote:
> @@ -2107,6 +2115,14 @@ const struct hvm_function_table * __init
> start_vmx(void)
> && cpu_has_vmx_secondary_exec_control )
> vmx_function_table.pvh_supported = 1;
>
> + if ( cpu_has_vmx_tsc_scaling )
> + {
> + vmx_function_table.default_tsc_scaling_ratio =
> VMX_TSC_MULTIPLIER_DEFAULT;
> + vmx_function_table.max_tsc_scaling_ratio = VMX_TSC_MULTIPLIER_MAX;
> + vmx_function_table.tsc_scaling_ratio_frac_bits = 48;
> + vmx_function_table.setup_tsc_scaling = vmx_setup_tsc_scaling;
> + }
Same comments here as on the earlier patch - it indeed looks as if
tsc_scaling_ratio_frac_bits would be the ideal field to dynamically
initialize, as it being zero will not yield any bad behavior afaict.
Also please consider making all fields together a sub-structure
of struct hvm_function_table, such that the above would become
vmx_function_table.tsc_scaling.default_ratio =
VMX_TSC_MULTIPLIER_DEFAULT;
vmx_function_table.tsc_scaling.max_ratio = VMX_TSC_MULTIPLIER_MAX;
vmx_function_table.tsc_scaling.ratio_frac_bits = 48;
vmx_function_table.tsc_scaling.setup = vmx_setup_tsc_scaling;
keeping everything nicely together.
> @@ -258,6 +259,9 @@ extern u64 vmx_ept_vpid_cap;
> #define VMX_MISC_CR3_TARGET 0x01ff0000
> #define VMX_MISC_VMWRITE_ALL 0x20000000
>
> +#define VMX_TSC_MULTIPLIER_DEFAULT 0x0001000000000000ULL
Considering this and the respective SVM value - do we really
need the separate field in struct hvm_function_table? Both are
1ULL << tsc_scaling.ratio_frac_bits after all.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |