[Public]
Hi Victor,
calling get_xgmi_info() in gmc_v9_0_early_init is from below patch, which also
sent out to amd-gfx for review as a upstream patch. Do you know why it's missed
from upstream?
drm/amdgpu: get xgmi info at eary_init
Driver need to get XGMI info function earlier before ip_init since
driver need to check
the XGMI setting to determine how to perform reset during init
Signed-off-by: shaoyunl <[email protected]>
Acked-by: Alex Deucher <[email protected]>
Change-Id: Ic37276bbb6640bb4e9360220fed99494cedd3ef5
Regards,
Guchun
-----Original Message-----
From: amd-gfx <[email protected]> On Behalf Of Skvortsov,
Victor
Sent: Thursday, December 16, 2021 10:28 PM
To: Alex Deucher <[email protected]>
Cc: Ming, Davis <[email protected]>; Chen, JingWen <[email protected]>;
amd-gfx list <[email protected]>; Deng, Emily <[email protected]>;
Nieto, David M <[email protected]>; Chen, Horace <[email protected]>; Liu,
Monk <[email protected]>; Liu, Shaoyun <[email protected]>
Subject: RE: [PATCH 4/5] drm/amdgpu: Initialize Aldebaran RLC function pointers
[AMD Official Use Only]
Gotcha, I will skip this patch for drm-next
-----Original Message-----
From: Alex Deucher <[email protected]>
Sent: Thursday, December 16, 2021 8:53 AM
To: Skvortsov, Victor <[email protected]>
Cc: amd-gfx list <[email protected]>; Deng, Emily
<[email protected]>; Liu, Monk <[email protected]>; Ming, Davis
<[email protected]>; Liu, Shaoyun <[email protected]>; Zhou, Peng Ju
<[email protected]>; Chen, JingWen <[email protected]>; Chen, Horace
<[email protected]>; Nieto, David M <[email protected]>
Subject: Re: [PATCH 4/5] drm/amdgpu: Initialize Aldebaran RLC function pointers
[CAUTION: External Email]
On Wed, Dec 15, 2021 at 6:58 PM Skvortsov, Victor <[email protected]>
wrote:
>
> [AMD Official Use Only]
>
> Hey Alex,
>
> This change was based on the fact that amd-mainline-dkms-5.13 calls
> get_xgmi_info() in gmc_v9_0_early_init(). But I can see that drm-next it's
> instead called in gmc_v9_0_sw_init(). So, I'm not sure whats the correct
> behavior. But I do agree that the change is kind of ugly. I don't know where
> else to put it if we do need to call get_xgmi_info() in early_init.
>
We could skip this patch for drm-next and just apply it to the dkms branch.
There's already a lot of ugly stuff in there to deal with multiple kernel
versions.
Alex
> Thanks,
> Victor
>
> -----Original Message-----
> From: Alex Deucher <[email protected]>
> Sent: Wednesday, December 15, 2021 4:38 PM
> To: Skvortsov, Victor <[email protected]>
> Cc: amd-gfx list <[email protected]>; Deng, Emily
> <[email protected]>; Liu, Monk <[email protected]>; Ming, Davis
> <[email protected]>; Liu, Shaoyun <[email protected]>; Zhou, Peng
> Ju <[email protected]>; Chen, JingWen <[email protected]>; Chen,
> Horace <[email protected]>; Nieto, David M <[email protected]>
> Subject: Re: [PATCH 4/5] drm/amdgpu: Initialize Aldebaran RLC function
> pointers
>
> [CAUTION: External Email]
>
> On Wed, Dec 15, 2021 at 1:56 PM Victor Skvortsov <[email protected]>
> wrote:
> >
> > In SRIOV, RLC function pointers must be initialized early as we rely
> > on the RLCG interface for all GC register access.
> >
> > Signed-off-by: Victor Skvortsov <[email protected]>
> > ---
> > drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 2 ++
> > drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 3 +--
> > drivers/gpu/drm/amd/amdgpu/gfx_v9_0.h | 2 ++
> > 3 files changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> > index 65e1f6cc59dd..1bc92a38d124 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> > @@ -844,6 +844,8 @@ static int amdgpu_discovery_set_gc_ip_blocks(struct
> > amdgpu_device *adev)
> > case IP_VERSION(9, 4, 1):
> > case IP_VERSION(9, 4, 2):
> > amdgpu_device_ip_block_add(adev,
> > &gfx_v9_0_ip_block);
> > + if (amdgpu_sriov_vf(adev) && adev->ip_versions[GC_HWIP][0]
> > == IP_VERSION(9, 4, 2))
> > + gfx_v9_0_set_rlc_funcs(adev);
>
> amdgpu_discovery.c is IP independent. I'd rather not add random IP specific
> function calls. gfx_v9_0_set_rlc_funcs() already gets called in
> gfx_v9_0_early_init(). Is that not early enough? In general we shouldn't be
> touching the hardware much if at all in early_init.
>
> Alex
>
> > break;
> > case IP_VERSION(10, 1, 10):
> > case IP_VERSION(10, 1, 2):
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > index edb3e3b08eed..d252b06efa43 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > @@ -816,7 +816,6 @@ static void gfx_v9_0_sriov_wreg(struct
> > amdgpu_device *adev, u32 offset, static void
> > gfx_v9_0_set_ring_funcs(struct amdgpu_device *adev); static void
> > gfx_v9_0_set_irq_funcs(struct amdgpu_device *adev); static void
> > gfx_v9_0_set_gds_init(struct amdgpu_device *adev); -static void
> > gfx_v9_0_set_rlc_funcs(struct amdgpu_device *adev); static int
> > gfx_v9_0_get_cu_info(struct amdgpu_device *adev,
> > struct amdgpu_cu_info *cu_info);
> > static uint64_t gfx_v9_0_get_gpu_clock_counter(struct amdgpu_device
> > *adev); @@ -7066,7 +7065,7 @@ static void gfx_v9_0_set_irq_funcs(struct
> > amdgpu_device *adev)
> > adev->gfx.cp_ecc_error_irq.funcs =
> > &gfx_v9_0_cp_ecc_error_irq_funcs; }
> >
> > -static void gfx_v9_0_set_rlc_funcs(struct amdgpu_device *adev)
> > +void gfx_v9_0_set_rlc_funcs(struct amdgpu_device *adev)
> > {
> > switch (adev->ip_versions[GC_HWIP][0]) {
> > case IP_VERSION(9, 0, 1):
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.h
> > b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.h
> > index dfe8d4841f58..1817e252354f 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.h
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.h
> > @@ -29,4 +29,6 @@ extern const struct amdgpu_ip_block_version
> > gfx_v9_0_ip_block; void gfx_v9_0_select_se_sh(struct amdgpu_device *adev,
> > u32 se_num, u32 sh_num,
> > u32 instance);
> >
> > +void gfx_v9_0_set_rlc_funcs(struct amdgpu_device *adev);
> > +
> > #endif
> > --
> > 2.25.1
> >