On Mon, Mar 29, 2021 at 01:41:29PM +0800, Like Xu wrote:
> @@ -3869,10 +3876,12 @@ static struct perf_guest_switch_msr 
> *intel_guest_get_msrs(int *nr, void *data)
>  
>               if (arr[1].guest)
>                       arr[0].guest |= arr[1].guest;
> -             else
> +             else {
>                       arr[1].guest = arr[1].host;
> +                     arr[2].guest = arr[2].host;
> +             }

What's all this gibberish?

The way I read that it says:

        if guest has PEBS_ENABLED
                guest GLOBAL_CTRL |= PEBS_ENABLED
        otherwise
                guest PEBS_ENABLED = host PEBS_ENABLED
                guest DS_AREA = host DS_AREA

which is just completely random garbage afaict. Why would you leak host
msrs into the guest? Why would you change guest GLOBAL_CTRL implicitly;
guest had better wrmsr that himself to control when stuff is enabled.

This just cannot be right.

Reply via email to