[AMD Official Use Only - Internal Distribution Only] Hi Monk, Good suggestion, will send out patch again.
Best wishes Emily Deng >-----Original Message----- >From: Liu, Monk <monk....@amd.com> >Sent: Monday, September 21, 2020 1:37 PM >To: Deng, Emily <emily.d...@amd.com>; amd-gfx@lists.freedesktop.org >Cc: Deng, Emily <emily.d...@amd.com> >Subject: RE: [PATCH 1/2] drm/amdgpu/sriov: Add one parameter for mcbp >debug > >[AMD Official Use Only - Internal Distribution Only] > >Hi Emily > >There is already a amdgpu_mcbp parameter there, can you try to leverage that >one ? > >e.g.: >we refactor our driver's code and reduce the checking logic from "if >(amdgpu_mcbp || amdgpu_sriov_vf(adev))" to something like >"if( amdgpu_mcbp) " > >therefore: >1) You need to force set "amdgpu_mcbp" to true in the driver's init stage once >the "SRIOV" is detected *and* "amdgpu_mcbp" is not set to "0"; >2) for Bare-metal, we just leave "amdgpu_mcbp" as the value it was.... >3) we interpret "amdgpu_mcbp" as: >0: force disable, it will be "disable" for both BM and SRIOV >1: force enable, auto (default), it will be "enable" for both BM and SRIOV > >This way if you can disable MCBP in both SRIOV and BM by that existed >parameter instead of introducing a duplicated one ... > >_____________________________________ >Monk Liu|GPU Virtualization Team |AMD > > >-----Original Message----- >From: amd-gfx <amd-gfx-boun...@lists.freedesktop.org> On Behalf Of >Emily.Deng >Sent: Friday, September 18, 2020 11:27 AM >To: amd-gfx@lists.freedesktop.org >Cc: Deng, Emily <emily.d...@amd.com> >Subject: [PATCH 1/2] drm/amdgpu/sriov: Add one parameter for mcbp debug > >For debug convenient, add sriov_mcbp parameter. > >Signed-off-by: Emily.Deng <emily.d...@amd.com> >Change-Id: I84019eb4344e00d85b2ecc853145aabb312412fe >--- > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 9 +++++++++ >drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 3 ++- >drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +- > 4 files changed, 13 insertions(+), 2 deletions(-) > >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >index 13f92dea182a..a255fbf4d370 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >@@ -183,6 +183,7 @@ extern uint amdgpu_ras_mask; extern int >amdgpu_bad_page_threshold; extern int amdgpu_async_gfx_ring; extern int >amdgpu_mcbp; >+extern int amdgpu_sriov_mcbp; > extern int amdgpu_discovery; > extern int amdgpu_mes; > extern int amdgpu_noretry; >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >index 3f07d1475bd2..b0b2f0f7be94 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >@@ -145,6 +145,7 @@ uint amdgpu_dc_feature_mask = 0; uint >amdgpu_dc_debug_mask = 0; int amdgpu_async_gfx_ring = 1; int >amdgpu_mcbp = 0; >+int amdgpu_sriov_mcbp = 1; > int amdgpu_discovery = -1; > int amdgpu_mes = 0; > int amdgpu_noretry; >@@ -578,6 +579,14 @@ MODULE_PARM_DESC(mcbp, "Enable Mid-command >buffer preemption (0 = disabled (default), 1 = enabled)"); >module_param_named(mcbp, amdgpu_mcbp, int, 0444); > >+/** >+ * DOC: sriov_mcbp (int) >+ * It is used to enable mid command buffer preemption. (0 = disabled, 1 >+= enabled(default)) */ MODULE_PARM_DESC(sriov_mcbp, "Enable sriov >+Mid-command buffer preemption (0 = disabled (default), 1 = enabled)"); >+module_param_named(sriov_mcbp, amdgpu_sriov_mcbp, int, 0444); >+ > /** > * DOC: discovery (int) > * Allow driver to discover hardware IP information from IP Discovery table at >the top of VRAM. >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c >index 2f53fa0ae9a6..ca0e17688bdf 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c >@@ -236,7 +236,8 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, >unsigned num_ibs, > > for (i = 0; i < num_ibs; ++i) { > ib = &ibs[i]; >- >+if (!amdgpu_sriov_mcbp) >+ib->flags &= ~AMDGPU_IB_FLAG_PREEMPT; > /* drop preamble IBs if we don't have a context switch */ if ((ib->flags & >AMDGPU_IB_FLAG_PREAMBLE) && > skip_preamble && >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c >index d7f37cb92a97..156e76a5a6e0 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c >@@ -742,7 +742,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, >void *data, struct drm_file dev_info.ids_flags = 0; if (adev->flags & >AMD_IS_APU) dev_info.ids_flags |= AMDGPU_IDS_FLAGS_FUSION; -if >(amdgpu_mcbp || amdgpu_sriov_vf(adev)) >+if (amdgpu_mcbp || (amdgpu_sriov_vf(adev) && amdgpu_sriov_mcbp)) > dev_info.ids_flags |= AMDGPU_IDS_FLAGS_PREEMPTION; if >(amdgpu_is_tmz(adev)) dev_info.ids_flags |= AMDGPU_IDS_FLAGS_TMZ; >-- >2.25.1 > >_______________________________________________ >amd-gfx mailing list >amd-gfx@lists.freedesktop.org >https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.fre >edesktop.org%2Fmailman%2Flistinfo%2Famd- >gfx&data=02%7C01%7Cmonk.liu%40amd.com%7C497edf57e53b41a055f >c08d85b82c709%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6 >37359964547689160&sdata=zXlPTG939tdC0sUbCntiJuGsZHpM15DqWmg >y8SmZ2Z8%3D&reserved=0 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx