From e48d4777c3278ab6ad6595de050277d4ae8869fa Mon Sep 17 00:00:00 2001 From: Tk-Glitch Date: Fri, 8 Jan 2021 16:27:57 +0100 Subject: [PATCH] linux510-tkg: Add a fix for 24562523688b ("Revert drm/amd/amdgpu: set gtt size according to system memory size only") by Joshua Ashton --- PKGBUILD | 2 +- .../5.10/0012-misc-additions.patch | 68 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/PKGBUILD b/PKGBUILD index 9809fe4..a9cf877 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -340,7 +340,7 @@ case $_basever in 'a557b342111849a5f920bbe1c129f3ff1fc1eff62c6bd6685e0972fc88e39911' 'e308292fc42840a2366280ea7cf26314e92b931bb11f04ad4830276fc0326ee1' '49262ce4a8089fa70275aad742fc914baa28d9c384f710c9a62f64796d13e104' - '8a752a93bdb06ad1dd7607cf4c5071b59396f1935e1e597715375826a1c541e8') + '37626f613311113762224ee52b1e24b508d40b85d11d346ca6708545ce91f49b') ;; 511) opt_ver="5.8%2B" diff --git a/linux-tkg-patches/5.10/0012-misc-additions.patch b/linux-tkg-patches/5.10/0012-misc-additions.patch index 32ba40f..a82884e 100644 --- a/linux-tkg-patches/5.10/0012-misc-additions.patch +++ b/linux-tkg-patches/5.10/0012-misc-additions.patch @@ -257,3 +257,71 @@ index 2ddc27db8c01..d12b4799c3cb 100644 /* update ELD and jack state via audio component */ -- cgit v1.2.3-1-gf6bb5 + +From e437ac931e89629f952ce9f3f9dfe45ac505cd0d Mon Sep 17 00:00:00 2001 +From: Joshua Ashton +Date: Tue, 5 Jan 2021 19:46:01 +0000 +Subject: [PATCH] drm/amdgpu: don't limit gtt size on apus + +Since commit 24562523688b ("Revert "drm/amd/amdgpu: set gtt size +according to system memory size only""), the GTT size was limited by +3GiB or VRAM size. + +This is problematic on APU systems with a small carveout +(notably, those that ship with dGPUs where this is unconfigurable), +where the carveout size can be as low as 128MiB. + +This makes it so the GTT size heuristic always uses 3/4ths of +the system memory size on APUs (limiting the size by 3GiB/VRAM size +only on devices with dedicated video memory). + +Fixes: 24562523688b ("Revert drm/amd/amdgpu: set gtt size according to +system memory size only") + +Signed-off-by: Joshua Ashton +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 +++-- + drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 +++++++++--- + 2 files changed, 12 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +index 72efd579ec5e..a5a41e9272d6 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +@@ -192,8 +192,9 @@ module_param_named(gartsize, amdgpu_gart_size, uint, 0600); + + /** + * DOC: gttsize (int) +- * Restrict the size of GTT domain in MiB for testing. The default is -1 (It's VRAM size if 3GB < VRAM < 3/4 RAM, +- * otherwise 3/4 RAM size). ++ * Restrict the size of GTT domain in MiB for testing. The default is -1 (On APUs this is 3/4th ++ * of the system memory; on dGPUs this is 3GiB or VRAM sized, whichever is bigger, ++ * with an upper bound of 3/4th of system memory. + */ + MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 = auto)"); + module_param_named(gttsize, amdgpu_gtt_size, int, 0600); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +index 4d8f19ab1014..294f26f4f310 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +@@ -1865,9 +1865,15 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) + struct sysinfo si; + + si_meminfo(&si); +- gtt_size = min(max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20), +- adev->gmc.mc_vram_size), +- ((uint64_t)si.totalram * si.mem_unit * 3/4)); ++ gtt_size = (uint64_t)si.totalram * si.mem_unit * 3/4; ++ /* If we have dedicated memory, limit our GTT size to ++ * 3GiB or VRAM size, whichever is bigger ++ */ ++ if (!(adev->flags & AMD_IS_APU)) { ++ gtt_size = min(max(AMDGPU_DEFAULT_GTT_SIZE_MB << 20, ++ adev->gmc.mc_vram_size), ++ gtt_size); ++ } + } + else + gtt_size = (uint64_t)amdgpu_gtt_size << 20; +-- +2.30.0