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>
