Re: [PATCH] drm/amdgpu/sriov: Set the default value about gds vmid0 size

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

 



Am 12.10.2018 um 05:21 schrieb Emily Deng:
For sriov, when first run windows guest, then run linux guest, the gds
vmid0 size will be reset to 0 by windows guest. So if the value has been
reset to 0, then set the value to the default value in linux guest.

Can we just always use the fixed value instead of reading mmGDS_VMID0_SIZE?

We really don't want to introduce so much complexity here and another extra code path for SRIOV.

Christian.


Signed-off-by: Emily Deng <Emily.Deng@xxxxxxx>
---
  drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 14 ++++++++++++++
  1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index ae86238..d9df3dd 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -4872,6 +4872,17 @@ static void gfx_v9_0_set_rlc_funcs(struct amdgpu_device *adev)
  	}
  }
+static void gfx_v9_0_set_gds_default(struct amdgpu_device *adev)
+{
+	switch (adev->asic_type) {
+	case CHIP_VEGA10:
+		adev->gds.mem.total_size = 0x10000;
+		break;
+	default:
+		break;
+	}
+}
+
  static void gfx_v9_0_set_gds_init(struct amdgpu_device *adev)
  {
  	/* init asci gds info */
@@ -4879,6 +4890,9 @@ static void gfx_v9_0_set_gds_init(struct amdgpu_device *adev)
  	adev->gds.gws.total_size = 64;
  	adev->gds.oa.total_size = 16;
+ if (adev->gds.mem.total_size == 0 && amdgpu_sriov_vf(adev))
+		gfx_v9_0_set_gds_default(adev);
+
  	if (adev->gds.mem.total_size == 64 * 1024) {
  		adev->gds.mem.gfx_partition_size = 4096;
  		adev->gds.mem.cs_partition_size = 4096;

_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx




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

  Powered by Linux