Commit Graph

95 Commits

Author SHA1 Message Date
Dunajski, Bartosz e18e9fb94e Move static methods from Gmm to new GmmHelper class
Change-Id: I84fbe94f0e1072324164086b456c71a46ae5040c
2018-06-27 16:46:09 +02:00
Milczarek, Slawomir fb10f666e9 AUB CSR: Ensured PTE bits be set correctly for Global GTT
This commit fixes the issue with setting reserved bits in PTE for GGTT.

Change-Id: I08582e20914419a3363c9e61085dcf03ba355a61
2018-06-21 22:23:01 +02:00
Mrozek, Michal e47344ec0e Add debug flag CreateMultipleDevices.
- This flag allows to create multiple devices from the same GPU

Change-Id: I4b80e4759543ca4559549b2d26c5ddef241f9ebb
2018-06-20 18:33:32 +02:00
Milczarek, Slawomir eb1b5ded9c Add support for AUB subcapture (filter and toggle modes)
This commit adds a capability to selectively enable/disable AUB capture,
i.e. by toggling the registry key from the outside or specifying the filter
with a kernel name and/or kernel start index and kernel end index.

Change-Id: Ib5d39c21863fbc4a95aa73c949b9779ff993de0f
2018-06-15 13:02:27 +02:00
Artur Harasimiuk 75ab0c6fe1 Switch clang-format to 6.0
Change-Id: Id96d1f47fb3d479d10d1022f1259dc030a148192
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2018-06-14 09:45:00 +02:00
Zdanowicz, Zbigniew c1782b802a Add debug flag to override platform used by compiler
Change-Id: I6fc4254f928158d0cb07f53436d1ddd09fcef7d5
2018-06-08 16:53:59 +02:00
Zdanowicz, Zbigniew 36621b2488 Use product aub device id and make it configurable by using debug flag
Change-Id: Ie65eea0f72497ef68e805ad438f4f53df731d304
2018-06-06 17:09:21 +02:00
Dunajski, Bartosz bd16f4bf2b Improve scratch allocation size calculation
Change-Id: I627bea89ce31e7110976cb88f9e9266e08af590a
2018-06-06 16:27:48 +02:00
Hoppe, Mateusz a9566e0c05 Return true in Device::isSimulation() when AUB or TBX CSR is selected
- when CSR is set to AUB or TBX (with AubDump) Device should
return true in isSimulation(). This method is used to set flag
m_IsSimulation in deviceQueue which is used by scheduler kernel

Change-Id: Ibdf07d4c940335fb0bb8448071b66d47e9391d71
2018-06-06 14:24:24 +02:00
Hoppe, Mateusz a1a224c3bc Add Clear SLM workaround for BDW
- set ProtectedMemoryDisable in PC prior to setting new L3 config

Change-Id: I2ecbfe9535ef45159b48fffa41faad66db55d074
2018-05-21 14:29:17 +02:00
Mrozek, Michal d2817427af Remove createInternalGraphicsAllocation function.
- Route directly to allocate32BitGraphicsMemory

Change-Id: Ia6872bae655c530ff06b0ec270f419ca91d005ce
2018-05-21 04:11:43 +02:00
Mrozek, Michal 6fdde42289 Clean not used methods from linear stream.
Change-Id: Ib6775e346eb1a971c9ad5bc511c4226f1c53ecaf
2018-05-18 08:42:37 -07:00
Maciej Dziuban 41f570ab50 Fix overestimation of MediaVfeState in CommandStreamReceiver
Change-Id: I38fd00f6b994f6a62921bcc09f293cabc95773d4
2018-05-15 11:13:20 +02:00
Hoppe, Mateusz 47f1abe543 Source Level Debugger fixes
when SLD is active:
- make Sip Kernel Resident
- program GPGPU_CSR_BASE_ADDRESS
- Disable Preemption

- adjust getDebuggerOption input param,
value passed has to be at least 2 bytes in size
change unit test behaviour accordingly

Change-Id: I4ec87d0e8dfcf02437fdeeffc5363314eea5dd07
2018-05-14 15:51:32 +02:00
Maciej Dziuban 749d89a9bf L3 programming refactor 4/n
- Fix overestimation of preemption programming in preamble

Change-Id: I4ddfc6a2dacbe1160c68cdcef08125a5d5e74835
2018-05-14 15:39:28 +02:00
Milczarek, Slawomir cf5b5aecec Update header with structures for AUB services.
This commit updates the structures and adds getters/setters to AUB services.

Change-Id: I14ce251b68f233428458958565c2d52551661747
2018-05-11 13:37:32 +02:00
Zdanowicz, Zbigniew f94844305f Add new arguments to aub dumping interface
Change-Id: I226ec04a919f4ca6ae5c237cf189e043f8286d5e
2018-05-10 13:33:54 +02:00
Maciej Dziuban 44d35b3534 L3 programming refactor 2/n
- Rename misnamed test function
- Adjust 2 tests, so they use CSR size getters instead of hardcoded values
- Move getSizeRequiredPreambleCS() into CommandStreamReceiverHw class
- Improve PreambleHelper size estimating

Change-Id: I3f292d50e08f3d10d190c9f8722e1f0498481154
2018-04-27 13:10:28 +02:00
Mrozek, Michal 34ff5852eb Add capability to csr to allow N:1 aggregation when ooq is created.
- This allows applications to force the N:1 aggregation by creating out
of order queue.
- That switches csr to N:1 submission model where commands from multiple
command streams may be aggregated.
- That forces scenarios returning an event to be aggregated as well.

Change-Id: I8fd8d7f88bb2665234ee90870133120b206710a8
2018-04-26 15:41:20 +02:00
Mrozek, Michal 8d2df3c332 Move indirect heaps from command queues to csr.
-This is required to enable N:1 submission model.
-If heaps are coming from different command queues that always
mean that STATE_BASE_ADDRESS needs to be reloaded
-In order to not emit any non pipelined state in CSR, this change
moves the ownership of IndirectHeap to one centralized place which is
CommandStreamReceiver
-This way when there are submissions from multiple command queues then
they reuse the same heaps, therefore preventing SBA reload

Change-Id: I5caf5dc5cb05d7a2d8766883d9bc51c29062e980
2018-04-26 14:05:40 +02:00
Pawel Wilma a0c044e6d2 Extend batch buffer flattening in AubCSR to BatchedDispatch mode
- batch buffer flatening in batched mode
    - added MI_USER_INTERRUPT command
    - added GUC Work Queue Item

Change-Id: I35142da34b30d3006bb4ffc1521db7f6ebe68ebc
2018-04-26 12:45:02 +02:00
Dunajski, Bartosz 1d36206bb7 Remove obsolete methods form LinearStream
Change-Id: Id87dd58d9a373cf5d3f217e9ecc8db8a79b25190
2018-04-25 11:40:47 +02:00
Maciej Dziuban 1392b79b58 L3 programming refactor 1/n
- Clean up size estimation functions
- Make some tests gen specific

Change-Id: If9c15f311306282ba035b380e6d4cadc17584815
2018-04-20 22:34:35 +02:00
Mrozek, Michal 59df78cc18 [32/n] Internal 4GB allacator.
- Ensure that heaps passed as IndirectHeap to flushTask

Change-Id: Ib633e3d3027e142a1fdb51e78b970fb1bd1b9b0c
2018-04-18 08:49:08 +02:00
Mrozek, Michal 8583c68c8c [29/n] Internal 4GB allocator.
- Internal allocations may now coexists with non internal on reusable list.
- Caller now specifies if internal allocation is needed.
- If criteria are not met , then allocation is not returned.

Change-Id: I7da3a4f944768b7c8a873e44fd47248f1d76bf9e
2018-04-17 06:42:56 +02:00
Hoppe, Mateusz e898b9e218 Source Level Debugger: SIP programming in preamble
- program SIP_STATE when either MidThread preemption is enabled
or kernel debugging is active
- device creates correct sip based on preemption mode and
active kernel debugging

Change-Id: I3e43b66ad00d24c2389fa4fc766dd47044b6af80
2018-04-13 14:40:08 +02:00
Koska, Andrzej b0a6d9131a Making DSH and IOH always resident
Change-Id: Ib114b92cb5ee153f213c15c935f8f1d1cfeb46eb
2018-04-13 12:35:15 +02:00
Dunajski, Bartosz acf97999f3 Force Kmd Notify timeout for Windows machines running on battery
- This is to improve battery usage while waiting in busy loop on CPU
- New Kmd Notify helper to maintain dynamic parameters
- Ask OS about battery status on longer waits
- Pick different timeout when using battery and optimization is disabled

Change-Id: I5f9c8c5a9c635652aac27c707f2b55933947a7fb
2018-04-12 10:03:10 +02:00
Dunajski, Bartosz 87f8f735f9 Move KMD Notify logic from CSR to specialized helper
- Decission about timeout enabling and value moved out of CSR
- Timeout multiplier is no longer Linux specific

Change-Id: I6858fe2f811ef13802b95e0470e310210a9dea8b
2018-04-10 08:16:11 +02:00
Hoppe, Mateusz 9a86f86a24 Source Level Debugger device debugger active flag
- device flag indicating if debugger is active
- when active, proper sip kernels must be used

Change-Id: I678367cdf8fab5d4b5770e3f471246ff6d6bd112
2018-04-09 14:02:45 +02:00
Zdanowicz, Zbigniew b6b92ae808 Create GpgpuWalkerHelper class
Change-Id: Ia9aa7b816356aff57234b46ea3509b6bd9b7f14b
2018-04-04 16:42:16 +02:00
Hoppe, Mateusz 4703417813 Use correct virtual addresses in TBX CSR makeCoherent method
- cpu virtual address was used instead of gpu va
- this caused incorrect behaviour of TBX server when
special heap allocator assigning GPU addresses was used

Change-Id: I2328cf2441be797311fd6a3c7b331b0fff79d4fc
2018-04-03 15:54:07 +02:00
Milczarek, Slawomir b56289a507 User space AUBs capable of memory re-dumps on CPU-side memory modifications.
Any CPU related updates such as clEnqueueMapBuffer or similar
need to trigger a re-dump of memory prior to the next clEnqueue call.

Change-Id: I7b31e559278e92ff55b6ebab8ef4190caef1ebc0
2018-04-03 15:40:29 +02:00
Dunajski, Bartosz 8505658cab Multiply wait timeout by task count difference
- Linux specific
- Use only for non-quickSleep requests

Change-Id: I245546f83672d128377e51d92b6c7708a7448f05
2018-03-30 12:50:38 +02:00
Mrozek, Michal 296c527a0b [23/n] Internal 4GB allocator.
- Align SIP kernel & STATE_SIP programming.
- on Linux address may be non 0
- on Windows address is expected to be always 0

Change-Id: I385ed59ef652382f3f17d1afe55f6050d07ed1f4
2018-03-29 12:21:46 +02:00
Mrozek, Michal 7f3c4d3d70 [22/n] Internal 4GB allocator.
- Finalize Instruction Heap removal.

Change-Id: Idd7df94a228238a5157c3251180fc3c8d3a189df
2018-03-29 08:17:32 +02:00
Mrozek, Michal 9bdf01468e [20/n] Internal 4GB allocator.
- Switch to internal heap for kernel ISA allocations.
- remove IH from various functions
- remove IHState from CSR , IH is never dirty
- ISA is no longer copied on enqueue calls.

Change-Id: I0099cf2a9ebab6192ea03a74dd35f7da963fd5a5
2018-03-28 16:07:26 +02:00
Mrozek, Michal 3958cd909a [18/n] Internal 4GB allocator.
- Remove IH from preemption functions.
- This is one of parts of complete IH removal.

Change-Id: Ic19a6e2e1f5d9df25785c2c982c52b581b57a605
2018-03-27 11:19:47 +02:00
Milczarek, Slawomir 32825e203e KM DAF AubCapture to recapture command streams and heap allocations
This commit introduces a recapture of CS and Heap resources on every submit.

Change-Id: I2a5a763e8988de804da1a6c2c8042154b0786b2e
2018-03-26 18:27:20 +02:00
Hoppe, Mateusz 7f32eb06d1 Kernel Source Level debugger support 4/n
- adding DebugSurface allocation and setup
- unit tests refactors:
  - mock kernel with kernel debug option
  - separating fixtures to headers
  - added helper for getting internal-options kernels
    filenames

Change-Id: I7b6f4d46e2ab7cff0da8d5212483f44ae0d4be31
2018-03-26 15:02:42 +02:00
Mateusz Jablonski 575d1bf381 Cmake refactor part 20
set global properties with runtime sources, libult sources and
os interface tests

Change-Id: I9a84edf2f021b4581a16c19c7dbb0b2f94c33f4d
2018-03-23 15:51:12 +01:00
Pawel Wilma ff1d2361f3 Add patch info comments to AUB dump
Collect patching information and add as comments to AUB dump.

Change-Id: Ib7c903a2589d68b6e3e614c1774c7cd5a000c29f
2018-03-23 13:08:54 +01:00
Mrozek, Michal d7fe01454b Make sure that gtpin callbacks are not executed in enqueue path.
-This is to make sure those functions are not called when gtpin is not used
-This preserves CPU instruction cache pollution.
-Our enqueue path needs to be as thin as possible, even with this small change
there is visible gain in ULT execution time.

Change-Id: I44cc2144754cda95ca1fe058184cd8a151b8d35c
2018-03-23 12:54:17 +01:00
Dunajski, Bartosz 93cb7be091 Kmd notify improvements [3/n]: Fix sporadic in ULT
Change-Id: I1e326e7514d4d7d14cb1051b50105cbc418e325c
2018-03-23 10:50:42 +01:00
Dunajski, Bartosz 9486dba6dd Kmd notify improvements [2/n]: Use QuickKmdSleep for sporadic waits
- Measure time between wait calls. If delay is exeeded  use QuickKmdSleep
- Kmd Notify helper functions
- Refactor overriding from debug variables
- Refactor Kmd Notify tests


Change-Id: I123c31f492d98fd304184f99ee0bf7d733d06f04
2018-03-22 17:09:16 +01:00
Dunajski, Bartosz 516082e7c5 Kmd notify improvements [1/n]: Quick KMD sleep optimization
- KmdNotifyProperties struct for CapabilityTable that can be extended by
  incoming KmdNotify related optimizations
- Quick KMD sleep optimization that is called from async events handler
- Optimization makes a taskCount check in busy loop with much smaller
  delay than basic version of KMD Notify optimization

Change-Id: I60c851c59895f0cf9de1e1f21e755a8b4c2fe900
2018-03-21 20:41:33 +01:00
Dunajski, Bartosz c0d3eade30 Disable wait timeout when flushStamp is 0
Change-Id: I416ace1f8c1a3e5aa91d9bc2425a4faa77e2fbe7
2018-03-15 15:44:17 +01:00
Milczarek, Slawomir f997b45145 AUB CSR to update hardware tag in standalone mode
This commit introduces a software controlled HW Tag
in the configuration of AUB CSR in standalone mode
(i.e. with no execution on real HW).

Change-Id: Ic470957d58e6568b13dda3d61cb230498d8f2691
2018-03-15 14:37:57 +01:00
Mrozek, Michal 00ae077913 [14/n] Internal 4GB allocator
- call make resident on sip kernel allocation.

Change-Id: I9c9af5ed4cec3e8b05decac7228658358ef1562b
2018-03-13 10:29:50 +01:00
Mrozek, Michal 8254d6a081 Ensure that submissions are flushed prior to csr destruction.
Change-Id: Ie04de561d3d295f40f55a19f01274d873d259abd
2018-03-12 12:54:47 +01:00