On Thu, May 20, 2021 at 07:36:23AM -0400, Dave Voutila wrote:
> We don't currently emulate all TSC related features yet. While hacking
> on other issues, I've found some more obnoxious guests (*cough* debian
> *cough*) constantly try to read the IA32_TSC_ADJUST msr every second,
> not getting the hint when we inject #GP. This floods the kernel message
> buffer with things like:
>
>   vmx_handle_rdmsr: unsupported rdmsr (msr=0x3b), injecting #GP
>
> (The above debug logging exists to help find msr's we're not supporting
> that guests are poking, so I guess you can say it's working as intended
> [1].)
>
> If and when we add more TSC capabilities to vmm we can always unmask.
>
> Ok?
>
> [1] https://marc.info/?l=openbsd-tech&m=161739346822128&w=2
>
> Index: sys/arch/amd64/include/vmmvar.h
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/include/vmmvar.h,v
> retrieving revision 1.71
> diff -u -p -r1.71 vmmvar.h
> --- sys/arch/amd64/include/vmmvar.h   5 Apr 2021 18:26:46 -0000       1.71
> +++ sys/arch/amd64/include/vmmvar.h   16 May 2021 16:55:06 -0000
> @@ -637,6 +637,7 @@ struct vm_mprotect_ept_params {
>
>  /*
>   * SEFF flags - copy from host minus:
> + *  TSC_ADJUST (SEFF0EBX_TSC_ADJUST)
>   *  SGX (SEFF0EBX_SGX)
>   *  HLE (SEFF0EBX_HLE)
>   *  INVPCID (SEFF0EBX_INVPCID)
> @@ -655,7 +656,8 @@ struct vm_mprotect_ept_params {
>   *  PT (SEFF0EBX_PT)
>   *  AVX512VBMI (SEFF0ECX_AVX512VBMI)
>   */
> -#define VMM_SEFF0EBX_MASK ~(SEFF0EBX_SGX | SEFF0EBX_HLE | SEFF0EBX_INVPCID | 
> \
> +#define VMM_SEFF0EBX_MASK ~(SEFF0EBX_TSC_ADJUST | SEFF0EBX_SGX | \
> +    SEFF0EBX_HLE | SEFF0EBX_INVPCID | \
>      SEFF0EBX_RTM | SEFF0EBX_PQM | SEFF0EBX_MPX | \
>      SEFF0EBX_PCOMMIT | SEFF0EBX_PT | \
>      SEFF0EBX_AVX512F | SEFF0EBX_AVX512DQ | \

Yep, if we don't implement it we should not be advertising support for it.

ok mlarkin.

Reply via email to