[PATCH] drm/amdgpu: Fill adev->unique_id with data from PF2VF msg

Gu, JiaWei (Will) JiaWei.Gu at amd.com
Fri May 14 06:14:16 UTC 2021


[AMD Official Use Only - Internal Distribution Only]

Hi David,

Can you help double confirm that in design unique_id should always be fetched by PF2VF under SRIOV?
If so we can skip smu_get_unique_id() under SRIOV (though func is empty and nothing really happens) as Alex's suggestion.

Best regards,
Jiawei 

-----Original Message-----
From: Alex Deucher <alexdeucher at gmail.com> 
Sent: Friday, May 14, 2021 12:27 PM
To: Gu, JiaWei (Will) <JiaWei.Gu at amd.com>
Cc: amd-gfx at lists.freedesktop.org; Nieto, David M <David.Nieto at amd.com>; Deng, Emily <Emily.Deng at amd.com>
Subject: Re: [PATCH] drm/amdgpu: Fill adev->unique_id with data from PF2VF msg

On Thu, May 13, 2021 at 11:47 PM Gu, JiaWei (Will) <JiaWei.Gu at amd.com> wrote:
>
> [AMD Official Use Only - Internal Distribution Only]
>
> Hi Alex,
>
> unique_id is fetched from FUSE_DATA on hypervisor.
>
> Under my experiment, both multi-VF & single VF can still read FUSE_DATA to get it.
> But per David's info, guest shouldn't be able to read it (though it can currently)...
>
> So I guess in design, the unique_id should be only fetched from hypervisor in SRIOV case, and guest should always get it from host.

thanks.  so does the patch also need something like this?

diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index 32dadeee9514..9243e5de5bb7 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -686,7 +686,8 @@ static int smu_late_init(void *handle)
                return ret;
        }

-       smu_get_unique_id(smu);
+       if (!amdgpu_sriov_vf(adev))
+               smu_get_unique_id(smu);

        smu_get_fan_parameters(smu);

otherwise we fetch it twice.

Alex

>
> Hi David,
>
> Please feel free to correct my statement / provide more background.
>
> Best regards,
> Jiawei
>
> -----Original Message-----
> From: Alex Deucher <alexdeucher at gmail.com>
> Sent: Friday, May 14, 2021 11:33 AM
> To: Gu, JiaWei (Will) <JiaWei.Gu at amd.com>
> Cc: amd-gfx at lists.freedesktop.org; Nieto, David M 
> <David.Nieto at amd.com>; Deng, Emily <Emily.Deng at amd.com>
> Subject: Re: [PATCH] drm/amdgpu: Fill adev->unique_id with data from 
> PF2VF msg
>
> unique_id is normally fetched from the SMU on bare metal.  I guess in the SR-IOV case, this would come from the hypervisor since the SMU is not normally handled in the VF.  That makes sense for multi-VF, but what about single VF?  Are you sure the ordering is correct such that the SMU value won't overwrite this?  Maybe that's ok because they would be the same in that case?
>
> Alex
>
>
> On Thu, May 13, 2021 at 10:39 PM Gu, JiaWei (Will) <JiaWei.Gu at amd.com> wrote:
> >
> > [AMD Official Use Only - Internal Distribution Only]
> >
> > pinging
> >
> > -----Original Message-----
> > From: Gu, JiaWei (Will)
> > Sent: Thursday, May 13, 2021 7:01 PM
> > To: Jiawei Gu <Jiawei.Gu at amd.com>; amd-gfx at lists.freedesktop.org; 
> > Nieto, David M <David.Nieto at amd.com>
> > Cc: Deng, Emily <Emily.Deng at amd.com>
> > Subject: RE: [PATCH] drm/amdgpu: Fill adev->unique_id with data from 
> > PF2VF msg
> >
> > [AMD Official Use Only - Internal Distribution Only]
> >
> > Add David.
> >
> > -----Original Message-----
> > From: Jiawei Gu <Jiawei.Gu at amd.com>
> > Sent: Thursday, May 13, 2021 2:41 PM
> > To: amd-gfx at lists.freedesktop.org
> > Cc: Deng, Emily <Emily.Deng at amd.com>; Gu, JiaWei (Will) 
> > <JiaWei.Gu at amd.com>
> > Subject: [PATCH] drm/amdgpu: Fill adev->unique_id with data from 
> > PF2VF msg
> >
> > Initialize unique_id from PF2VF under virtualization.
> >
> > Signed-off-by: Jiawei Gu <Jiawei.Gu at amd.com>
> > ---
> >  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 a57842689d42..96e269cbe326 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> > @@ -471,6 +471,8 @@ static int amdgpu_virt_read_pf2vf_data(struct amdgpu_device *adev)
> >                         ((struct amd_sriov_msg_pf2vf_info *)pf2vf_info)->feature_flags.all;
> >                 adev->virt.reg_access =
> >                         ((struct amd_sriov_msg_pf2vf_info 
> > *)pf2vf_info)->reg_access_flags.all;
> > +               adev->unique_id =
> > +                       ((struct amd_sriov_msg_pf2vf_info 
> > + *)pf2vf_info)->uuid;
> >
> >                 break;
> >         default:
> > --
> > 2.17.1
> > _______________________________________________
> > amd-gfx mailing list
> > amd-gfx at lists.freedesktop.org
> > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fli
> > st 
> > s.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=04%7C01%7C
> > Ji
> > aWei.Gu%40amd.com%7C8c5b87447e364531b89008d916890f54%7C3dd8961fe4884
> > e6 
> > 08e11a82d994e183d%7C0%7C0%7C637565600188355261%7CUnknown%7CTWFpbGZsb
> > 3d 
> > 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%
> > 7C 
> > 1000&sdata=Go8nw1HMA5I4wLJv2jk9hpSm2%2F0BR9nRzwwdAlJfttc%3D&
> > re
> > served=0


More information about the amd-gfx mailing list