[Beignet] [PATCH] utests: fix multithread queue chaos
Song, Ruiling
ruiling.song at intel.com
Mon Nov 2 21:21:46 PST 2015
LGTM
Thanks!
Ruiling
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Pan Xiuli
> Sent: Tuesday, November 3, 2015 11:29 AM
> To: beignet at lists.freedesktop.org
> Cc: Pan, Xiuli
> Subject: [Beignet] [PATCH] utests: fix multithread queue chaos
>
> Utest profiling exec create a new queue
> and replace the global shared queue for
> no use. It will result in some strange
> segmeng fault.
> Fix by removing the replacment of the
> global queue.
>
> Signed-off-by: Pan Xiuli <xiuli.pan at intel.com>
> ---
> utests/profiling_exec.cpp | 8 +-------
> 1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/utests/profiling_exec.cpp b/utests/profiling_exec.cpp
> index 4232772..437a628 100644
> --- a/utests/profiling_exec.cpp
> +++ b/utests/profiling_exec.cpp
> @@ -45,7 +45,6 @@ static void profiling_exec(void)
> const size_t n = 512;
> cl_int status = CL_SUCCESS;
> cl_command_queue profiling_queue = NULL;
> - cl_command_queue tmp_queue = NULL;
> float* cpu_src = (float *)malloc(n*sizeof(float));
> float* cpu_dst = (float *)malloc(n*sizeof(float));
> cl_event exec_event;
> @@ -56,10 +55,6 @@ static void profiling_exec(void)
> profiling_queue = clCreateCommandQueue(ctx, device,
> CL_QUEUE_PROFILING_ENABLE, &status);
> OCL_ASSERT(status == CL_SUCCESS);
>
> - /* save the default queue. */
> - tmp_queue = queue;
> - queue = profiling_queue;
> -
> OCL_CREATE_KERNEL("compiler_fabs");
>
> OCL_CREATE_BUFFER(buf[0], 0, n * sizeof(float), NULL);
> @@ -77,7 +72,7 @@ static void profiling_exec(void)
> cpu_exec(n, cpu_src, cpu_dst);
>
> // Run the kernel on GPU
> - OCL_CALL(clEnqueueNDRangeKernel, queue, kernel, 1, NULL, globals, locals,
> 0, NULL, &exec_event);
> + OCL_CALL(clEnqueueNDRangeKernel, profiling_queue, kernel, 1, NULL,
> globals, locals, 0, NULL, &exec_event);
> OCL_CALL(clWaitForEvents, 1, &exec_event);
>
> OCL_CALL(clGetEventProfilingInfo, exec_event,
> CL_PROFILING_COMMAND_QUEUED, sizeof(cl_ulong), &time_queue, NULL);
> @@ -94,7 +89,6 @@ static void profiling_exec(void)
> OCL_ASSERT(((float *)buf_data[1])[i] == cpu_dst[i]);
> OCL_UNMAP_BUFFER(1);
>
> - queue = tmp_queue;
> clReleaseCommandQueue(profiling_queue);
> free(cpu_dst);
> free(cpu_src);
> --
> 2.1.4
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list