Gráfico de commits

450 Commits

Autor SHA1 Mensaje Fecha
Sean Keely 99e2942949 Fix improper Min/Max operands.
Operands were relying on implicit type conversion which may result
in range errors.

Change-Id: I4b35ef92dcaf8b547aed02fea36aed75d392c6af
2020-06-19 22:34:16 -04:00
Sean Keely 8485a48756 Remove additional legacy build file.
Change-Id: Ib166ad9856114a4a846f37ff99bac4f870c414d9
2020-06-19 22:34:12 -04:00
Sean Keely ce19721c88 Update copyright date.
Change-Id: If4bf4c20cf051878bfe759080bb7345d884dd53d
2020-06-19 22:34:01 -04:00
Sean Keely cd26cbbe5f Update README.md
Describe the new build process, build dependencies, and usage.

Also remove some old known issues.

Change-Id: Iec85db378442e3e0ca091d551a42a40e6549ddb3
2020-06-19 22:33:36 -04:00
Sean Keely f4bb51476d Add optional support for the cmake per user package registry.
Default is OFF to conform to latest cmake standard (3.15) and
because this feature can cause some confusion for unaware developers.

Change-Id: I00f9ec2185c27d2f6a8d2c7f294512a268a4e3f5
2020-06-19 22:33:36 -04:00
Sean Keely 9ff0268f4c Further cmake changes.
Add namespacing to elf find module.

Stop using CMAKE_CXX_FLAGS and start using target properties for this.

Ideally we should remove the actual option strings and replace with cmake
compiler properties or compile features.

Change-Id: I57756387b3bd3c565c99a35fed4b37fe1a2d0556
2020-06-19 22:33:36 -04:00
Sean Keely 55a4f01b16 Update to modern cmake.
Adds support for find_package(), locates dependencies with
find_package(), swaps the roles of /hsa/include/hsa and /include/hsa
as well as /lib & /hsa/lib.

Kernel code objects no longer build at every make call but only
as needed.  Dependencies are tracked through to clang.

Device lib is still located with directory searches.  build_devicelibs.sh
does not yet install the cmake config files on the build systems.

Corrects DAZ mode mismatch in code object compilation.

Still needs updating to compiler properties rather than direct
manipulation of CMAKE_CXX_FLAGS.

Change-Id: I02d946c8a77d5cf753681f8e3d3153fca4aae86a
2020-06-19 22:33:36 -04:00
Sean Keely a5e492253e Remove legacy build files.
Change-Id: I540846b46714b6b07039e8b84929588f156652e0
2020-06-19 22:33:36 -04:00
Ramesh Errabolu 42b38daa22 Update License header and Cleanup IP references
Change-Id: I0a6636e1d8457045d034d05383cfb5d4e7680fee
2020-06-19 22:33:36 -04:00
Ramesh Errabolu 0ca0691ca7 Build ROCr core and image libraries as one shared object
Change-Id: I3a16c1227e7db2e386ab33886965596fa0fb0c87
2020-06-19 22:33:36 -04:00
Laurent Morichetti db6a781f0c Preserve the exec mask for the queue error case
Save and restore exec_lo/exec_hi around the mGetDoorbellId macro in
the signal_error case just like we do in the signal_debugger case.

Also reset the wave_id (ttmp4/ttmp5) to 0 since it isn't preserved.
0 will be detected as a new wave by the debugger api library.

Change-Id: I5123caa9431154ec1584bae85e42648c97c64c37
2020-06-18 02:25:11 -04:00
Sean Keely d163fac13d Fix install issue.
Create symlink directory before attmpting to create the symlink.

Change-Id: Ic4d07052e5bfc32280c7d71e58784cbba3536e2a
2020-06-17 03:15:25 -05:00
Tony 047b80ab41 Do not add offset/size to code object URI if loading from complete file
Change-Id: I7cb1e803e0bcdbc24935273af431fbcc88404bfd
2020-06-12 05:10:35 -04:00
Evgeny b033453537 concurrent sqtt support
Change-Id: I0e1515d4b0aab30b0a9b673120eee28d96f64d9e
2020-06-10 22:45:30 -04:00
Tony a74660c69a Initialize HSA Queue object before creating KFD queue
Initialize all the fields in the HSA queue object to known values
before calling the thunk to create the KFD queue. This ensures that
when the debugger detects that a KFD queue is created it can access
the values it requires. The values it requires include the apperture
addresses, queue scratch memory base, and the HSA queue kind.

Change-Id: Ic985755b0402c6794d5987e60aff50d223f09eb9
2020-06-04 04:56:24 -04:00
Konstantin Zhuravlyov 5f614c31f5 Correct loader URI reporting
- Check address is in the range of the mapped file.
  - Correct calculation of offset within the file.

Change-Id: I848a3ead4422698c2ef1c140bc8ae5e000a717f7
2020-06-03 13:03:07 -04:00
Laurent Morichetti da6d892058 Handle address watch exceptions
Set ttmp11[8] and send a signal for the debugger when the handler
is entered because of an address watch exception.

Change-Id: Icc83a79027bb7ca1e50e19e2f00464cb9ca862f3
2020-06-02 15:25:15 -04:00
Konstantin Zhuravlyov 9eb735ec24 Add support for code object URI to ROCr
Adds the following:
	- New factory method to create a code object reader from
          file with offset and size.
	- A pair of queries on a loaded code object to get the URI name/length.
	- A bump to the AMD vendor loader extension API and its associated table.

Change-Id: I17c83e9c2447d29a43c438459395365f786a3611
2020-06-01 11:07:50 -04:00
Sean Keely 4e0bf29704 Separate memory map info printing from vmfault handler.
Allows the print utility to be called from GDB.

Change-Id: Ia27ff9ba23ad6c0117ba1278693d4c8b0473bdc1
2020-05-28 23:34:49 -04:00
Sean Keely 32bb10086d Select a non-empty pool for image kernarg.
Zero size pools have no numa bindings.  Selecting a pool with numa
bindings should prevent thrashing due to numa balancing daemon.

Change-Id: Ib0082cb9af66e24e07a2adbb83c1045145d51403
2020-05-28 23:34:42 -04:00
Sean Keely 40d1931209 Relocate initial system clock setup.
This has nothing to do with registering agents.
Moved to Runtime::Load.

Change-Id: I0f84c9d8f5a68d458717111113f02af56c92f4f6
2020-05-28 23:34:30 -04:00
Sean Keely 29b660c91e Correct IPC fragment reuse.
Memory from the suballocator may be exported via IPC.  If this
happens then the allocating process should not reuse that memory
since it would still be connected to the remote process.  IPC exported
memory must be released back to the driver.

Change-Id: I2ab0c814f63191f753fc3640cc4140ee144bf07f
2020-05-28 21:46:02 -04:00
Sean Keely 09ebc21d13 Remove PointerInfo fragment branch.
All types which could be generated from a fragment need to take this branch.
Taking the branch is correct for all types, it was a performance optimization
only and was missing IPC.  Branch removal simplifies updates for any future
fragment use and will allow CQE to report any performance issues that might
require bringing the branch back.

Change-Id: I8041788c422e880b764e144eb1877f5126ba76f3
2020-05-28 21:46:02 -04:00
Sean Keely 397608e2c0 Fix pointer info block base address fetch.
Thunk may report nullptr for host base if the host does not have
access.  Use agent base in this case.

Change-Id: I44883d35a3fff0941b1e3037d16b059591a6c511
2020-05-28 21:46:02 -04:00
Joseph Greathouse 3fe95c696a Add ability to get ASIC revision from hsa_agent_get_info()
Change-Id: Ie30c64f9e02f9e704c9a4c4145deb9580429fdf6
2020-05-28 14:25:13 -05:00
Laurent Morichetti 584ef1e1ca Clear mode.debug_en if !status.halt
The 1st level trap handler jumps to the 2nd level trap handler on
context save requests or regular traps if (mode.debug_en
&& !status.halt) is true.

If we return from the 2nd level trap handler without status.halt=1, then
we need to make sure mode.debug_en is cleared, or we will re-enter the
2nd level trap handler again and again when trapsts.savectx is set.

Change-Id: I4db6369de8c91a32842f488a4df5c9d94fa65aa9
2020-05-19 18:31:29 -07:00
Sean Keely ddebda6433 Add USER GCR packet
Allows cache flush from SDMA.

Change-Id: Iecae0b49519b2d4da7b1c053b03f721544439e71
2020-05-16 00:59:03 -04:00
Sean Keely 2ffc9ecbb3 Remove gfx1030 references.
Options seem to be gfx1030 and gfx1030.

Change-Id: I3e33e3a950d1b950e10163612b892d9c382628fa
2020-05-15 16:53:11 -05:00
Sean Keely 012ffed459 Correct HSA_AMD_AGENT_INFO_MAX_ADDRESS_WATCH_POINTS text.
Missing attribute type.  Also remove dangling word in
HSA_AMD_AGENT_INFO_MEMORY_WIDTH.

No code change, documentation only.

Change-Id: I1d0efdb721eaa0e2fb0bdb21f8d5e034beaf8857
2020-05-13 22:40:25 -05:00
Laurent Morichetti 838c6bd6ad Set ttmp11[8] for all memory violation errors
In the case where SQ_WAVE_TRAPSTS_XNACK_ERROR_MASK is set, we also need
to set the TTMP11_EXCP_RAISED_BIT in ttmp11. If we don't, the debugger
may think that the wave is halted at launch (halted without events).

Change-Id: I8c19605bbfc145275728de4ad1979d3ba8bb478a
2020-05-12 00:44:06 -04:00
Sean Keely c60364e1e0 Allow linear swizzle mode with tiled image requests.
Mesa address lib faults if the only acceptable swizzle modes are
forbidden.  The old address lib simply ignored the forbidden list
in this case.  Mesa addrlib will not select linear unless there
is no other option so allowing linear mode for tiled images will
still use tiled modes when possible.

Change-Id: I1aa44d072db902c968484dbff67b482af03b45d9
2020-05-11 23:34:44 -04:00
Sean Keely 2fbacccaed Correct handling of failed lazy_ptr constructors.
Contructor function must not be attempted twice even if the construction
attempt returns nullptr.

Change-Id: I75353e5e511769a96e4332f7f60887f6559c1cd5
2020-05-08 22:23:46 -04:00
Tony bccb25fc33 Make HSA_QUEUE_TYPE_COOPERATIVE a queue type value
- Correct defintion of HSA_QUEUE_TYPE_COOPERATIVE to be a queue type
  and not a bit mask.
- Correct implementation of hsa_queue_type_t to treat is as an
  enumeration type and not a bit mask. In particular
  HSA_QUEUE_TYPE_COOPERATIVE is a distinct queue type that uses the
  multi producer protocol, and is not a bit set value.

Change-Id: I9415be8853671e5511e16e306caf16020e8c84af
2020-05-07 19:24:19 -04:00
Matt Arsenault 96d4140609 Do not use llvm-dis to pick the triple
There are a couple problems with this. First, llvm-dis is an unstable
llvm development tool and 3rd party users should generally not rely on
it. The text format is unstable, and the regex here isn't even
explicitly looking for the target triple field, so it could
accidentally find something else. Second, picking the target to
compile based on the library you are linking is a fundamentally
backwards decision. The target you're compiling for changes the
library you would want to link. The device libraries are only ever
compiled with amdgcn-amd-amdhsa. If we had a second triple, this
should be explicitly building for any it cares about.

Change-Id: I3bae8398f60f78df61ab2177aa9e83f47ec6dea4
2020-05-06 13:28:39 -04:00
Laurent Morichetti df03a377f5 Check all s_endpgm instructions
The ROCR trap handler should check for all end program instructions
and not halt on them. Mask off the imm16 before comparing the
instruction to the s_endpgm opcode.

Change-Id: I669ffc7f5b699d7daf0c8ec5761ed7bb193f07a7
2020-05-04 19:52:53 -04:00
Sean Keely 3da81968cb Update addrlib with latest Mesa source.
Change-Id: Idd8cdaac9ad370397d62f6a32687ca7bc7d7462b
2020-05-01 20:33:09 -04:00
Sean Keely 1440da3e15 Remove dead code from image_manager_xx.cpp
Image swizzle mode will be set by the preferred surface info
function.

Change-Id: I41e639be53cafbb4db6cf15c159aa2bd457ec5be
2020-05-01 20:32:45 -04:00
Sean Keely 7e3db20826 Move Images code to hsa-runtime folder
Change-Id: I53c1845d985ac3e9708d952865009c0021f3bb4f
2020-04-30 19:35:57 -05:00
Ramesh Errabolu 1a3ee2fd03 Update Image code base to use addrlib from mesa
Change-Id: I31355d7fc3db423c16772cf105e9b6b59a3a6307
2020-04-30 19:35:56 -05:00
Laurent Morichetti 00da82f951 Add debugger support for wave halted at launch
New trap handler ABI: Record in ttmp11[8:7] the event that caused the
trap handler to be entered. We currently record 2 events, trap_raised
if an s_trap instruction was executed, or excp_raised if an exception
(MEM_VIOL or ILLEGAL_INST) was raised.

Change-Id: Ie278c8277437b3b67c2737dcd1a12fe6511df428
2020-04-29 19:29:56 -04:00
Kent Russell 33133ebd07 CMakeLists: Support static building of hsa-runtime
Remove the hard-coding of "SHARED" as the lib type, and move any
SO-specific linking to only happen if the .so exists in the first place

Change-Id: I3f0bfd5c03f19b2425423b4dc8eed8fd87acc1d6
2020-04-27 20:52:07 -04:00
Sean Keely 675f73cda9 Adapt to new LLVM location in repo build.
This will reenable incremental PSDB builds.

Change-Id: I2311c124b06b544202f7c1db31b6607f2580194e
2020-04-27 17:58:35 -04:00
Austin Kerbow 87202d4408 Update IsaRegistry for backend changes
Changes in the compiler are being made to add controls for XNACK and SRAM ECC
for all targets which can support these features. By default the conservatively
correct settings of XNACK on and SRAM ECC on will be used. This change is to
facilitate these backend updates.

Change-Id: I2fd6b6bc1d32937737e7f56d8e08c70fe781c745
2020-04-25 04:45:28 -04:00
Sean Keely 7712c7e743 Correct IPC fragment validation.
IPC create must only be used on whole ROCr allocations.
Fragments were allowing handle creation with offsets.

Change-Id: I1faa96d36bc7a6199bdc2e3ff1b8871d1a36a2fa
2020-04-24 00:08:53 -04:00
Sean Keely 3fe891d5da Suppress Finalizer loading attempts.
This has been the default mode for a while now since we don't
distribute or build the finalizer.  Removing the attempt cleans
up debug mode messages that are causing confusion.

Change-Id: I8162c95abd5bbedaa22b90191f7a384a34c388ae
2020-04-18 00:06:42 -04:00
Sean Keely 9fe44ed675 Don't lock KFD allocated system memory.
Lock API suceeds but the GPU still faults on the address.
This should be fixed in Thunk and/or KFD as well.

Change-Id: I8b2fbcae61ab181e4fe7f0b64e43a5f0772efb24
2020-04-17 21:45:01 -04:00
Ramesh Errabolu 30f46e4e24 Stop building and packaging Tools library
Change-Id: Iee430c24e32ea7412f21564fe8970749e4954b91
2020-04-15 13:58:33 -04:00
Laurent Morichetti 5f783494f1 Return a file URI for elf images in shared objects
Iterate the loaded shared objects to see if the given elf image binary
is part of a loaded segment.

Change-Id: I074cacd99eb5b59f883f4ce2bd901e0e35a660b8
2020-04-14 15:22:43 -04:00
Nathan O 6d5781bb14 Fix hsa_amd_agents_allow_access documentation
- Update the documentation comment in hsa_ext_amd.h, which contained
   contradictory and incorrect information about an argument to the
   hsa_amd_agents_allow_access function.

Change-Id: I60b0dbbdc761078cd81906bc2c63a27d7e6b53e1
2020-04-10 18:26:13 -04:00
Ramesh Errabolu 89f7ef224c Extend Rocr Visible Devices functionality to include UUIDs
Change-Id: Ia2892e4033717556a422fe33dec0294fe2ca9e28
2020-04-09 00:42:53 -05:00