[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 06/13] HV: Add ghcb hvcall support for SNP VM



On Wed, Jul 28, 2021 at 10:52:21AM -0400, Tianyu Lan wrote:
> +     hv_ghcb->ghcb.protocol_version = 1;
> +     hv_ghcb->ghcb.ghcb_usage = 1;

The values set to ghcb_usage deserve some defines (here and below).

> +
> +     hv_ghcb->hypercall.outputgpa = (u64)output;
> +     hv_ghcb->hypercall.hypercallinput.asuint64 = 0;
> +     hv_ghcb->hypercall.hypercallinput.callcode = control;
> +
> +     if (input_size)
> +             memcpy(hv_ghcb->hypercall.hypercalldata, input, input_size);
> +
> +     VMGEXIT();
> +
> +     hv_ghcb->ghcb.ghcb_usage = 0xffffffff;

...

>  union hv_ghcb {
>       struct ghcb ghcb;
> +     struct {
> +             u64 hypercalldata[509];
> +             u64 outputgpa;
> +             union {
> +                     union {
> +                             struct {
> +                                     u32 callcode        : 16;
> +                                     u32 isfast          : 1;
> +                                     u32 reserved1       : 14;
> +                                     u32 isnested        : 1;
> +                                     u32 countofelements : 12;
> +                                     u32 reserved2       : 4;
> +                                     u32 repstartindex   : 12;
> +                                     u32 reserved3       : 4;
> +                             };
> +                             u64 asuint64;
> +                     } hypercallinput;
> +                     union {
> +                             struct {
> +                                     u16 callstatus;
> +                                     u16 reserved1;
> +                                     u32 elementsprocessed : 12;
> +                                     u32 reserved2         : 20;
> +                             };
> +                             u64 asunit64;
> +                     } hypercalloutput;
> +             };
> +             u64 reserved2;
> +     } hypercall;

Okay, this answers my previous question :)




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.