Re: [PATCH 1/6] drm/amdgpu: add CHIP_IP_DISCOVERY support for virtualization

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

 



On Thu, Jul 21, 2022 at 11:32 PM Chen, Horace <Horace.Chen@xxxxxxx> wrote:
>
> [AMD Official Use Only - General]
>
> Hi Alex,
>
> By current design, we will keep this register same for all new asics.
> Also, the amdgpu_detect_virtualization will be called before we read the IP discovery table (virtualization needs to send a message to host machine to request for the IP discovery table preparation). So we can't use any IP version to decide the register.

Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>

>
> Regards,
> Horace.
>
> -----Original Message-----
> From: Alex Deucher <alexdeucher@xxxxxxxxx>
> Sent: Thursday, July 21, 2022 10:37 PM
> To: Chen, Horace <Horace.Chen@xxxxxxx>
> Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Grodzovsky, Andrey <Andrey.Grodzovsky@xxxxxxx>; Xiao, Jack <Jack.Xiao@xxxxxxx>; Xu, Feifei <Feifei.Xu@xxxxxxx>; Wang, Yang(Kevin) <KevinYang.Wang@xxxxxxx>; Xiaojie Yuan <xiaojie.yuan@xxxxxxx>; Tuikov, Luben <Luben.Tuikov@xxxxxxx>; Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Quan, Evan <Evan.Quan@xxxxxxx>; Koenig, Christian <Christian.Koenig@xxxxxxx>; Liu, Monk <Monk.Liu@xxxxxxx>; Zhang, Hawking <Hawking.Zhang@xxxxxxx>
> Subject: Re: [PATCH 1/6] drm/amdgpu: add CHIP_IP_DISCOVERY support for virtualization
>
> On Thu, Jul 21, 2022 at 5:52 AM Horace Chen <horace.chen@xxxxxxx> wrote:
> >
> > For further chips we will use CHIP_IP_DISCOVERY, so add this support
> > for virtualization
>
> All current and future chips will use CHIP_IP_DISCOVERY.  If we plan to keep the register the same for all new aics, this should be fine.
> If we might need to have it per asic I think you might want something more like this:
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> index 9be57389301b..0bdd71f9a8fb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> @@ -709,6 +709,16 @@ void amdgpu_detect_virtualization(struct
> amdgpu_device *adev)
>         case CHIP_ALDEBARAN:
>                 reg = RREG32(mmRCC_IOV_FUNC_IDENTIFIER);
>                 break;
> +       case CHIP_IP_DISCOVERY:
> +               switch (adev->ip_versions[GC_HWIP][0]) {
> +               case IP_VERSION(11, 0, 0):
> +                       reg = RREG32(mmRCC_IOV_FUNC_IDENTIFIER);
> +                       break;
> +               default:
> +                       reg = 0;
> +                       break;
> +               }
> +               break;
>         default: /* other chip doesn't support SRIOV */
>                 reg = 0;
>                 break;
>
> Alex
>
> >
> > Signed-off-by: Horace Chen <horace.chen@xxxxxxx>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> > index 7d7044e9de2f..ab55602ff534 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> > @@ -705,6 +705,7 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev)
> >         case CHIP_SIENNA_CICHLID:
> >         case CHIP_ARCTURUS:
> >         case CHIP_ALDEBARAN:
> > +       case CHIP_IP_DISCOVERY:
> >                 reg = RREG32(mmRCC_IOV_FUNC_IDENTIFIER);
> >                 break;
> >         default: /* other chip doesn't support SRIOV */ @@ -748,6
> > +749,7 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev)
> >                 case CHIP_NAVI10:
> >                 case CHIP_NAVI12:
> >                 case CHIP_SIENNA_CICHLID:
> > +               case CHIP_IP_DISCOVERY:
> >                         nv_set_virt_ops(adev);
> >                         /* try send GPU_INIT_DATA request to host */
> >                         amdgpu_virt_request_init_data(adev);
> > --
> > 2.25.1
> >




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux