Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Nov 2019 13:22:09 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        sgk@troutmask.apl.washington.edu, Mark Johnston <markj@freebsd.org>
Cc:        freebsd-current@freebsd.org, freebsd-x11@freebsd.org
Subject:   Re: unkillable process consuming 100% cpu
Message-ID:  <64e980fa-aa9b-e656-92a1-110d9cbf9059@selasky.org>
In-Reply-To: <3e11232b-e2a6-9169-adb0-da0e94523b39@selasky.org>
References:  <20191107202919.GA4565@troutmask.apl.washington.edu> <20191107203223.GF16978@raichu> <20191108220935.GA856@troutmask.apl.washington.edu> <6a4e5993-623a-ebaa-8180-e11c7d48e706@selasky.org> <dc2aa04a-6f7b-e369-57c8-b9555df4dd15@selasky.org> <3e11232b-e2a6-9169-adb0-da0e94523b39@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------6EF61D4E1FC5F777863650FE
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2019-11-11 11:44, Hans Petter Selasky wrote:
> Seems like we can optimise away one more write memory barrier.
> 
> If you are building from ports, simply:
> 
> cd work/kms-drm*
> cat seqlock.diff | patch -p1
> 

Hi,

Here is one more debug patch you can try. See if you get that print 
added in the patch in dmesg.

--HPS


--------------6EF61D4E1FC5F777863650FE
Content-Type: text/x-patch; charset=UTF-8;
 name="kdb.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="kdb.diff"

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index a6e0a16ae..0697d70f4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -31,6 +31,8 @@
 #include "amdgpu_vm.h"
 #include "amdgpu_amdkfd.h"
 
+#include <sys/kdb.h>
+
 /* Special VM and GART address alignment needed for VI pre-Fiji due to
  * a HW bug.
  */
@@ -236,6 +238,12 @@ static int amdgpu_amdkfd_remove_eviction_fence(struct amdgpu_bo *bo,
 		*ef_count = 0;
 	}
 
+	if (resv != NULL &&
+	    (struct thread *)SX_OWNER(resv->lock.base.sx.sx_lock) != curthread) {
+		printf("Called unlocked\n");
+		kdb_backtrace();
+	}
+
 	old = reservation_object_get_list(resv);
 	if (!old)
 		return 0;

--------------6EF61D4E1FC5F777863650FE--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?64e980fa-aa9b-e656-92a1-110d9cbf9059>