There is a small window where a thread can go to sleep in
Monitor::wait after releasing the lock but before another thread
notifies the monitor and updates the on-deck thread.
A simple approach to fix this problem is to wake-up the Monitor::wait
every 10 milliseconds and check if it is on-deck.
Change-Id: I4b9abda89d1fc653cdae2b4c84cdda01efde1cf2
[ROCm/clr commit: 5079410c94]
Reduce the size of the queueLock and lastCmdLock critical sections
to improve lock contention performance. The smaller the critical
sections are the better.
lasCmdLock is still needed to guarantee that getLastEnqueueCommand_
can retain the command before it is swapped out and released.
Change-Id: Id35d4a77c035b2da0de4c15568b153d49e958bb7
[ROCm/clr commit: 080dcfe857]
This reverts commit 6443ff4197.
Reason for revert: All the PSDBs on the CI are failing with the below error and its been root caused to this commit:
......................................................................................... Passed 0.59 sec 99% tests passed, 1 tests
failed out of 211 Total Test time (real) = 287.02 sec The following tests FAILED: 139 - directed_tests/runtimeApi/memory/hipMemcpyNegativeMThrdMSize_Negative_tests.tst
(Child aborted) Errors while running CTest Restoring clocks to: auto
Change-Id: I4ea0e14ba5f92cd61677f4a3b9482fea00902310
[ROCm/clr commit: f2d9d83a7c]
Replace constexpr with const in kernel source
codes because some kernel compiler doesn't
support constexpr.
Replace scheduler with __amd_rocclr_scheduler
due to name change.
Change-Id: I1ad4ddcdf1df5237b83e1ea2447eb39a19f7dc4a
[ROCm/clr commit: 9c5465f9e1]
getLastQueuedCommand(true) will implictly retain the last command, hence if we're not putting it in the waitlist, we should release it.
Change-Id: I1ad4ddcdf1df5237b83e1ea2447eb39a59f7dc3a
[ROCm/clr commit: 9998067174]
When header==0, the legitimate packet->header is wiped out, so also add an assert.
Change-Id: I6b3037d4618719262b0d7c1792bd54f768a63660
[ROCm/clr commit: 19d1497fa2]
root cause - cooperative queue is not inserted into queuePool_ (HSA queues) of ROC device calss causing a crash when creating hostcall buffers for printf
Change-Id: I3f9aceb4e5fe6a7c7a2a549a4bb0a3511fe02799
[ROCm/clr commit: d2b9d267b2]
There is no synchronize with relationship between the monitor micro-
lock and the onDeck microlock, so it is possible for an onDeck.load to
move above a contendersList.store, or a contendersList.load to move
above an ondeck.store.
To fix this issue a full memory fence (mm_mfence on x86) is needed
after the last store in the contendersList and onDeck critical regions.
Change-Id: I5beb7dfe0d21010c5bf00cd65d59b9c7af58e919
[ROCm/clr commit: f10435a1ef]
On teamcity clang --version returns something like
clang version 12.0.0
Target: x86_64-unknown-linux-gnu
currently hipcc does not handle it correctly since [^ ] causes new line and Targe:
matched. \S will make sure only version string matched.
Change-Id: I3659d6daf89b709d2b001e6b8024d69d8b79efc0
[ROCm/clr commit: 5e5fb829ed]
APIs tested: hipMemcpy, hipMemcpyAsync, hipMemcpyHtoD, hipMemcpyHtoDAsync
hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyDtoD,
hipMemcpyDtoDAsync
-Scenario-1:: The aim of this test case is to cover all the negative test cases
for 8 hipMemcpy apis
-Scenario-2:: This test launches NUM_THREADS threads. Each thread in turn tests
the working of 8 hipmemcpy apis
-Scenario-3:: This test case verifies the working of Memcpy apis for range of
Memory sizes from smallest one unit transfer to 1GB.
SWDEV-238517 for enhancing hip unit tests
Change-Id: Iace19cc54e865fae8450448d6f37abed88597f19
[ROCm/clr commit: becc687747]