compute-runtime/runtime/command_queue
Mrozek, Michal 6ffcd51847 Fix race in events scenarios.
- It could happen that 2 threads try to update the same event within tree
- First thread starts to submit command, it releases cmdToSubmit
- Second thread doesn't see the command and follows
- Second thread thinks that it submitted the command so it follows to
subsequent steps which are child events notification
- We end up with corrupted enqueue sequence as child may submit prior to
parent.
- With this change each submit step is synchronized basing on task count
- When second thread enters submit command without task count being set
it wait for first thread to properly set it.

Change-Id: Ic2ddaea17f9af8cab6781320edae2c268dd0b189
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-09 14:45:07 +02:00
..
CMakeLists.txt Extract GpgpuWalker related functions to bdw_plus files 2019-05-24 11:48:50 +02:00
command_queue.cpp Fix race in events scenarios. 2019-07-09 14:45:07 +02:00
command_queue.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
command_queue_hw.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
command_queue_hw_base.inl Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
command_queue_hw_bdw_plus.inl Remove CommandQueueHw::requiresCacheFlushAfterWalkerBasedOnProperties 2019-05-14 17:31:53 +02:00
cpu_data_transfer_handler.cpp Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_barrier.h Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
enqueue_common.h Make TimestampPacket allocations resident 2019-07-08 14:03:29 +02:00
enqueue_copy_buffer.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_copy_buffer_rect.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_copy_buffer_to_image.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_copy_image.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_copy_image_to_buffer.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_fill_buffer.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_fill_image.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_kernel.h Update enqueueKernel 2019-06-19 15:28:39 +02:00
enqueue_marker.h Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
enqueue_migrate_mem_objects.h Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
enqueue_read_buffer.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_read_buffer_rect.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_read_image.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_resource_barrier.h Add function to flush caches 2019-04-05 09:48:50 +02:00
enqueue_svm.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_write_buffer.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_write_buffer_rect.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
enqueue_write_image.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
finish.h Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
flush.h Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
gpgpu_walker.h Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
gpgpu_walker_base.inl Move enqueue blit logic to enqueueHandler 2019-07-08 12:37:06 +02:00
gpgpu_walker_bdw_plus.inl Metrics Library Performance Counters implementation. 2019-07-04 15:56:47 +02:00
hardware_interface.h Use GPU pointers for HwPerfCounter. 2019-04-18 16:28:48 +02:00
hardware_interface_base.inl Change postSyncAddress offset for cache flush 2019-06-27 11:42:52 +02:00
hardware_interface_bdw_plus.inl Add parameter to setGpgpuWalkerThreadData. 2019-07-03 13:14:51 +02:00
local_id_gen.cpp Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
local_id_gen.h Move ptr.h to core folder 2019-05-29 00:11:34 -07:00
local_id_gen.inl Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
local_id_gen_avx2.cpp Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
local_id_gen_sse4.cpp Change namespace from OCLRT to NEO 2019-03-26 15:48:19 +01:00
local_work_size.cpp Move basic_math.h and vec.h to core directory 2019-05-14 21:32:55 +02:00
resource_barrier.h Add function to flush caches 2019-04-05 09:48:50 +02:00