[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
This commit is contained in:
Mrozek, Michal
2018-03-27 12:55:20 +02:00
committed by sys_ocldev
parent 9f07de306c
commit 9bdf01468e
42 changed files with 124 additions and 318 deletions

View File

@@ -71,14 +71,11 @@ HWTEST_P(ParentKernelEnqueueTest, givenParentKernelWhenEnqueuedThenDeviceQueueDS
MockMultiDispatchInfo multiDispatchInfo(pKernel);
auto ish = &getIndirectHeap<FamilyType, IndirectHeap::INSTRUCTION>(*pCmdQ, multiDispatchInfo);
auto graphicsAllocation = pKernel->getKernelInfo().getGraphicsAllocation();
auto kernelIsaAddress = graphicsAllocation->getGpuAddressToPatch();
size_t initialIsh = ish->getUsed();
// instruction heap is aligned o 64 bytes
initialIsh = alignUp(initialIsh, 64);
uint64_t lowPart = initialIsh & 0xffffffff;
uint64_t hightPart = (initialIsh & 0xffffffff00000000) >> 32;
uint64_t lowPart = kernelIsaAddress & 0xffffffff;
uint64_t hightPart = (kernelIsaAddress & 0xffffffff00000000) >> 32;
pCmdQ->enqueueKernel(pKernel, 1, globalOffsets, workItems, workItems, 0, nullptr, nullptr);
@@ -95,8 +92,6 @@ HWTEST_P(ParentKernelEnqueueTest, givenParentKernelWhenEnqueuedThenDeviceQueueDS
const uint32_t blockFirstIndex = 1;
uint64_t kernelAddressPrevious = hightPart | lowPart;
for (uint32_t i = 0; i < blockCount; i++) {
const KernelInfo *pBlockInfo = blockManager->getBlockKernelInfo(i);
@@ -117,9 +112,7 @@ HWTEST_P(ParentKernelEnqueueTest, givenParentKernelWhenEnqueuedThenDeviceQueueDS
EXPECT_NE((uint64_t)0u, ((uint64_t)idData[blockFirstIndex + i].getKernelStartPointerHigh() << 32) | (uint64_t)idData[blockFirstIndex + i].getKernelStartPointer());
uint64_t kernelAddress = ((uint64_t)idData[blockFirstIndex + i].getKernelStartPointerHigh() << 32) | (uint64_t)idData[blockFirstIndex + i].getKernelStartPointer();
EXPECT_LT(kernelAddressPrevious, kernelAddress);
kernelAddressPrevious = kernelAddress;
EXPECT_EQ(pBlockInfo->getGraphicsAllocation()->getGpuAddressToPatch(), kernelAddress);
}
}
}