Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Nov 2019 14:28:50 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        sgk@troutmask.apl.washington.edu, Mark Johnston <markj@freebsd.org>, freebsd-current@freebsd.org, freebsd-x11@freebsd.org
Subject:   Re: unkillable process consuming 100% cpu
Message-ID:  <20191111122850.GO2707@kib.kiev.ua>
In-Reply-To: <64e980fa-aa9b-e656-92a1-110d9cbf9059@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> <64e980fa-aa9b-e656-92a1-110d9cbf9059@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Nov 11, 2019 at 01:22:09PM +0100, Hans Petter Selasky wrote:
> 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
> 

> 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) {
This is really should be spelled as sx_xlocked().

> +		printf("Called unlocked\n");
> +		kdb_backtrace();
> +	}
> +
>  	old = reservation_object_get_list(resv);
>  	if (!old)
>  		return 0;

> _______________________________________________
> freebsd-current@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20191111122850.GO2707>