]> www.infradead.org Git - users/willy/xarray.git/commitdiff
drm/amdgpu: Use free system memory size for kfd memory accounting
authorOak Zeng <Oak.Zeng@amd.com>
Mon, 18 Jan 2021 20:55:34 +0000 (14:55 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Mar 2021 02:57:49 +0000 (22:57 -0400)
With the current kfd memory accounting scheme, kfd applications
can use up to 15/16 of total system memory. For system which
has small total system memory size it leaves small system memory
for OS. For example, if the system has totally 16GB of system
memory, this scheme leave OS and non-kfd applications only 1GB
of system memory. In many cases, this leads to OOM killer.

This patch changed the KFD system memory accounting scheme.
15/16 of free system memory when kfd driver load. This deduct
the system memory that OS already use.

Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>
Suggested-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c

index c5343a5eecbeb6ac11ca5dd31b766abec0080f63..f44185f512de2a796b98ddcb4875c7a3548f055a 100644 (file)
@@ -44,7 +44,7 @@ int amdgpu_amdkfd_init(void)
        int ret;
 
        si_meminfo(&si);
-       amdgpu_amdkfd_total_mem_size = si.totalram - si.totalhigh;
+       amdgpu_amdkfd_total_mem_size = si.freeram - si.freehigh;
        amdgpu_amdkfd_total_mem_size *= si.mem_unit;
 
        ret = kgd2kfd_init();
index a5f0a46299676a66df280e07393cbdbfbf363347..0792eaffd2ede6ca47da11352fc1ebb76a593024 100644 (file)
@@ -97,7 +97,7 @@ void amdgpu_amdkfd_gpuvm_init_mem_limits(void)
        uint64_t mem;
 
        si_meminfo(&si);
-       mem = si.totalram - si.totalhigh;
+       mem = si.freeram - si.freehigh;
        mem *= si.mem_unit;
 
        spin_lock_init(&kfd_mem_limit.mem_limit_lock);