[Beignet] [PATCH] Delete useless event list in command queue struct.

junyan.he at inbox.com junyan.he at inbox.com
Fri Sep 30 07:19:52 UTC 2016


From: Junyan He <junyan.he at intel.com>

Signed-off-by: Junyan He <junyan.he at intel.com>
---
 src/cl_command_queue.c | 73 +++-----------------------------------------------
 src/cl_command_queue.h | 19 +++----------
 2 files changed, 7 insertions(+), 85 deletions(-)

diff --git a/src/cl_command_queue.c b/src/cl_command_queue.c
index a63efaf..7e7a854 100644
--- a/src/cl_command_queue.c
+++ b/src/cl_command_queue.c
@@ -79,8 +79,9 @@ cl_command_queue_delete(cl_command_queue queue)
 
   cl_mem_delete(queue->perf);
   cl_context_remove_queue(queue->ctx, queue);
-  cl_free(queue->wait_events);
-  cl_free(queue->barrier_events);
+  if (queue->barrier_events) {
+    cl_free(queue->barrier_events);
+  }
   CL_OBJECT_DESTROY_BASE(queue);
   cl_free(queue);
 }
@@ -239,74 +240,6 @@ cl_command_queue_flush_gpgpu(cl_gpgpu gpgpu)
   return CL_SUCCESS;
 }
 
-#define DEFAULT_WAIT_EVENTS_SIZE  16
-LOCAL void
-cl_command_queue_insert_event(cl_command_queue queue, cl_event event)
-{
-  cl_int i=0;
-  cl_event *new_list;
-
-  assert(queue != NULL);
-  if(queue->wait_events == NULL) {
-    queue->wait_events_size = DEFAULT_WAIT_EVENTS_SIZE;
-    TRY_ALLOC_NO_ERR (queue->wait_events, CALLOC_ARRAY(cl_event, queue->wait_events_size));
-  }
-
-  for(i=0; i<queue->wait_events_num; i++) {
-    if(queue->wait_events[i] == event)
-      return;   //is in the wait_events, need to insert
-  }
-
-  if(queue->wait_events_num < queue->wait_events_size) {
-    queue->wait_events[queue->wait_events_num++] = event;
-    return;
-  }
-
-  //wait_events_num == wait_events_size, array is full
-  queue->wait_events_size *= 2;
-  TRY_ALLOC_NO_ERR (new_list, CALLOC_ARRAY(cl_event, queue->wait_events_size));
-  memcpy(new_list, queue->wait_events, sizeof(cl_event)*queue->wait_events_num);
-  cl_free(queue->wait_events);
-  queue->wait_events = new_list;
-  queue->wait_events[queue->wait_events_num++] = event;
-  return;
-
-exit:
-  return;
-error:
-  if(queue->wait_events)
-    cl_free(queue->wait_events);
-  queue->wait_events = NULL;
-  queue->wait_events_size = 0;
-  queue->wait_events_num = 0;
-  goto exit;
-
-}
-
-LOCAL void
-cl_command_queue_remove_event(cl_command_queue queue, cl_event event)
-{
-  cl_int i=0;
-
-  assert(queue->wait_events);
-  for(i=0; i<queue->wait_events_num; i++) {
-    if(queue->wait_events[i] == event)
-      break;
-  }
-
-  if(i == queue->wait_events_num)
-    return;
-
-  if(i == queue->wait_events_num - 1) {
-    queue->wait_events[i] = NULL;
-  } else {
-    for(; i<queue->wait_events_num-1; i++) {
-      queue->wait_events[i] = queue->wait_events[i+1];
-    }
-  }
-  queue->wait_events_num -= 1;
-}
-
 LOCAL void
 cl_command_queue_insert_barrier_event(cl_command_queue queue, cl_event event)
 {
diff --git a/src/cl_command_queue.h b/src/cl_command_queue.h
index 7a8afbf..54a24f7 100644
--- a/src/cl_command_queue.h
+++ b/src/cl_command_queue.h
@@ -44,13 +44,10 @@ struct _cl_command_queue {
   _cl_base_object base;
   _cl_command_queue_enqueue_worker worker;
   cl_context ctx;                      /* Its parent context */
-  cl_event* barrier_events;               /* Point to array of non-complete user events that block this command queue */
-  cl_int    barrier_events_num;           /* Number of Non-complete user events */
-  cl_int    barrier_events_size;          /* The size of array that wait_events point to */
-  cl_event* wait_events;               /* Point to array of non-complete user events that block this command queue */
-  cl_int    wait_events_num;           /* Number of Non-complete user events */
-  cl_int    wait_events_size;          /* The size of array that wait_events point to */
-  cl_command_queue_properties  props;  /* Queue properties */
+  cl_event* barrier_events;            /* Point to array of non-complete user events that block this command queue */
+  cl_int barrier_events_num;           /* Number of Non-complete user events */
+  cl_int barrier_events_size;          /* The size of array that wait_events point to */
+  cl_command_queue_properties props;   /* Queue properties */
   cl_mem perf;                         /* Where to put the perf counters */
 
   void* cmrt_event;                    /* the latest CmEvent* of the command queue */
@@ -93,16 +90,8 @@ extern cl_int cl_command_queue_bind_surface(cl_command_queue, cl_kernel, cl_gpgp
 /* Bind all the image surfaces in the GPGPU state */
 extern cl_int cl_command_queue_bind_image(cl_command_queue, cl_kernel, cl_gpgpu);
 
-/* Insert a user event to command's wait_events */
-extern void cl_command_queue_insert_event(cl_command_queue, cl_event);
-
-/* Remove a user event from command's wait_events */
-extern void cl_command_queue_remove_event(cl_command_queue, cl_event);
-
 extern void cl_command_queue_insert_barrier_event(cl_command_queue queue, cl_event event);
-
 extern void cl_command_queue_remove_barrier_event(cl_command_queue queue, cl_event event);
-
 extern void cl_command_queue_notify(cl_command_queue queue);
 extern void cl_command_queue_enqueue_event(cl_command_queue queue, cl_event event);
 extern cl_int cl_command_queue_init_enqueue(cl_command_queue queue);
-- 
2.7.4





More information about the Beignet mailing list