Always initialize Kernel::threadArbitrationPolicy
Resolves: NEO-4824 Change-Id: I2ba24bec1a4cc2d1573ca7283a68ea0d94c73ff0 Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
parent
d7f196f62a
commit
76328b8247
|
@ -227,7 +227,8 @@ ze_result_t CommandQueueHw<gfxCoreFamily>::executeCommandLists(
|
||||||
statePreemption = commandQueuePreemptionMode;
|
statePreemption = commandQueuePreemptionMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t threadArbitrationPolicy = NEO::PreambleHelper<GfxFamily>::getDefaultThreadArbitrationPolicy();
|
auto &hwHelper = NEO::HwHelper::get(neoDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||||
|
uint32_t threadArbitrationPolicy = hwHelper.getDefaultThreadArbitrationPolicy();
|
||||||
if (NEO::DebugManager.flags.OverrideThreadArbitrationPolicy.get() != -1) {
|
if (NEO::DebugManager.flags.OverrideThreadArbitrationPolicy.get() != -1) {
|
||||||
threadArbitrationPolicy = static_cast<uint32_t>(NEO::DebugManager.flags.OverrideThreadArbitrationPolicy.get());
|
threadArbitrationPolicy = static_cast<uint32_t>(NEO::DebugManager.flags.OverrideThreadArbitrationPolicy.get());
|
||||||
}
|
}
|
||||||
|
|
|
@ -321,6 +321,8 @@ cl_int Kernel::initialize() {
|
||||||
Buffer::setSurfaceState(&getDevice().getDevice(), surfaceState, 0, nullptr, 0, nullptr, 0, 0);
|
Buffer::setSurfaceState(&getDevice().getDevice(), surfaceState, 0, nullptr, 0, nullptr, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setThreadArbitrationPolicy(hwHelper.getDefaultThreadArbitrationPolicy());
|
||||||
if (kernelInfo.patchInfo.executionEnvironment) {
|
if (kernelInfo.patchInfo.executionEnvironment) {
|
||||||
if (!kernelInfo.patchInfo.executionEnvironment->SubgroupIndependentForwardProgressRequired) {
|
if (!kernelInfo.patchInfo.executionEnvironment->SubgroupIndependentForwardProgressRequired) {
|
||||||
setThreadArbitrationPolicy(ThreadArbitrationPolicy::AgeBased);
|
setThreadArbitrationPolicy(ThreadArbitrationPolicy::AgeBased);
|
||||||
|
|
|
@ -695,6 +695,68 @@ INSTANTIATE_TEST_CASE_P(EnqueueKernel,
|
||||||
EnqueueKernelPrintfTest,
|
EnqueueKernelPrintfTest,
|
||||||
::testing::ValuesIn(TestParamPrintf));
|
::testing::ValuesIn(TestParamPrintf));
|
||||||
|
|
||||||
|
using EnqueueKernelTests = ::testing::Test;
|
||||||
|
|
||||||
|
HWTEST_F(EnqueueKernelTests, whenEnqueueingKernelThenCsrCorrectlySetsRequiredThreadArbitrationPolicy) {
|
||||||
|
struct myCsr : public UltCommandStreamReceiver<FamilyType> {
|
||||||
|
using CommandStreamReceiverHw<FamilyType>::requiredThreadArbitrationPolicy;
|
||||||
|
};
|
||||||
|
|
||||||
|
cl_uint workDim = 1;
|
||||||
|
size_t globalWorkOffset[3] = {0, 0, 0};
|
||||||
|
size_t globalWorkSize[3] = {1, 1, 1};
|
||||||
|
size_t localWorkSize[3] = {1, 1, 1};
|
||||||
|
|
||||||
|
UltClDeviceFactory clDeviceFactory{1, 0};
|
||||||
|
MockContext context{clDeviceFactory.rootDevices[0]};
|
||||||
|
SPatchExecutionEnvironment sPatchExecutionEnvironment = {};
|
||||||
|
|
||||||
|
sPatchExecutionEnvironment.SubgroupIndependentForwardProgressRequired = true;
|
||||||
|
MockKernelWithInternals mockKernelWithInternalsWithIfpRequired{*clDeviceFactory.rootDevices[0], sPatchExecutionEnvironment};
|
||||||
|
sPatchExecutionEnvironment.SubgroupIndependentForwardProgressRequired = false;
|
||||||
|
MockKernelWithInternals mockKernelWithInternalsWithIfpNotRequired{*clDeviceFactory.rootDevices[0], sPatchExecutionEnvironment};
|
||||||
|
|
||||||
|
cl_int retVal;
|
||||||
|
std::unique_ptr<CommandQueue> pCommandQueue{CommandQueue::create(&context, clDeviceFactory.rootDevices[0], nullptr, true, retVal)};
|
||||||
|
auto &csr = static_cast<myCsr &>(pCommandQueue->getGpgpuCommandStreamReceiver());
|
||||||
|
|
||||||
|
pCommandQueue->enqueueKernel(
|
||||||
|
mockKernelWithInternalsWithIfpRequired.mockKernel,
|
||||||
|
workDim,
|
||||||
|
globalWorkOffset,
|
||||||
|
globalWorkSize,
|
||||||
|
localWorkSize,
|
||||||
|
0,
|
||||||
|
nullptr,
|
||||||
|
nullptr);
|
||||||
|
pCommandQueue->flush();
|
||||||
|
EXPECT_EQ(HwHelperHw<FamilyType>::get().getDefaultThreadArbitrationPolicy(), csr.requiredThreadArbitrationPolicy);
|
||||||
|
|
||||||
|
pCommandQueue->enqueueKernel(
|
||||||
|
mockKernelWithInternalsWithIfpNotRequired.mockKernel,
|
||||||
|
workDim,
|
||||||
|
globalWorkOffset,
|
||||||
|
globalWorkSize,
|
||||||
|
localWorkSize,
|
||||||
|
0,
|
||||||
|
nullptr,
|
||||||
|
nullptr);
|
||||||
|
pCommandQueue->flush();
|
||||||
|
EXPECT_EQ(ThreadArbitrationPolicy::AgeBased, csr.requiredThreadArbitrationPolicy);
|
||||||
|
|
||||||
|
pCommandQueue->enqueueKernel(
|
||||||
|
mockKernelWithInternalsWithIfpRequired.mockKernel,
|
||||||
|
workDim,
|
||||||
|
globalWorkOffset,
|
||||||
|
globalWorkSize,
|
||||||
|
localWorkSize,
|
||||||
|
0,
|
||||||
|
nullptr,
|
||||||
|
nullptr);
|
||||||
|
pCommandQueue->flush();
|
||||||
|
EXPECT_EQ(HwHelperHw<FamilyType>::get().getDefaultThreadArbitrationPolicy(), csr.requiredThreadArbitrationPolicy);
|
||||||
|
}
|
||||||
|
|
||||||
typedef HelloWorldFixture<HelloWorldFixtureFactory> EnqueueKernelFixture;
|
typedef HelloWorldFixture<HelloWorldFixtureFactory> EnqueueKernelFixture;
|
||||||
typedef Test<EnqueueKernelFixture> EnqueueKernelTest;
|
typedef Test<EnqueueKernelFixture> EnqueueKernelTest;
|
||||||
|
|
||||||
|
|
|
@ -360,7 +360,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests,
|
||||||
|
|
||||||
HWTEST_F(CommandStreamReceiverFlushTaskTests, givenDefaultCommandStreamReceiverThenRoundRobinPolicyIsSelected) {
|
HWTEST_F(CommandStreamReceiverFlushTaskTests, givenDefaultCommandStreamReceiverThenRoundRobinPolicyIsSelected) {
|
||||||
MockCsrHw<FamilyType> commandStreamReceiver(*pDevice->executionEnvironment, pDevice->getRootDeviceIndex());
|
MockCsrHw<FamilyType> commandStreamReceiver(*pDevice->executionEnvironment, pDevice->getRootDeviceIndex());
|
||||||
EXPECT_EQ(PreambleHelper<FamilyType>::getDefaultThreadArbitrationPolicy(), commandStreamReceiver.peekThreadArbitrationPolicy());
|
EXPECT_EQ(HwHelperHw<FamilyType>::get().getDefaultThreadArbitrationPolicy(), commandStreamReceiver.peekThreadArbitrationPolicy());
|
||||||
}
|
}
|
||||||
|
|
||||||
HWTEST_F(CommandStreamReceiverFlushTaskTests, GivenKernelWithSlmWhenPreviousSLML3WasSentThenDontProgramL3) {
|
HWTEST_F(CommandStreamReceiverFlushTaskTests, GivenKernelWithSlmWhenPreviousSLML3WasSentThenDontProgramL3) {
|
||||||
|
|
|
@ -32,7 +32,7 @@ GEN11TEST_F(Gen11EnqueueTest, givenKernelRequiringIndependentForwardProgressWhen
|
||||||
|
|
||||||
auto cmd = findMmioCmd<FamilyType>(hwParser.cmdList.begin(), hwParser.cmdList.end(), RowChickenReg4::address);
|
auto cmd = findMmioCmd<FamilyType>(hwParser.cmdList.begin(), hwParser.cmdList.end(), RowChickenReg4::address);
|
||||||
ASSERT_NE(nullptr, cmd);
|
ASSERT_NE(nullptr, cmd);
|
||||||
EXPECT_EQ(RowChickenReg4::regDataForArbitrationPolicy[PreambleHelper<FamilyType>::getDefaultThreadArbitrationPolicy()], cmd->getDataDword());
|
EXPECT_EQ(RowChickenReg4::regDataForArbitrationPolicy[HwHelperHw<FamilyType>::get().getDefaultThreadArbitrationPolicy()], cmd->getDataDword());
|
||||||
EXPECT_EQ(1U, countMmio<FamilyType>(hwParser.cmdList.begin(), hwParser.cmdList.end(), RowChickenReg4::address));
|
EXPECT_EQ(1U, countMmio<FamilyType>(hwParser.cmdList.begin(), hwParser.cmdList.end(), RowChickenReg4::address));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ GEN9TEST_F(Gen9EnqueueTest, givenKernelRequiringIndependentForwardProgressWhenKe
|
||||||
|
|
||||||
auto cmd = findMmioCmd<FamilyType>(hwParser.cmdList.begin(), hwParser.cmdList.end(), DebugControlReg2::address);
|
auto cmd = findMmioCmd<FamilyType>(hwParser.cmdList.begin(), hwParser.cmdList.end(), DebugControlReg2::address);
|
||||||
ASSERT_NE(nullptr, cmd);
|
ASSERT_NE(nullptr, cmd);
|
||||||
EXPECT_EQ(DebugControlReg2::getRegData(PreambleHelper<FamilyType>::getDefaultThreadArbitrationPolicy()), cmd->getDataDword());
|
EXPECT_EQ(DebugControlReg2::getRegData(HwHelperHw<FamilyType>::get().getDefaultThreadArbitrationPolicy()), cmd->getDataDword());
|
||||||
EXPECT_EQ(1U, countMmio<FamilyType>(hwParser.cmdList.begin(), hwParser.cmdList.end(), DebugControlReg2::address));
|
EXPECT_EQ(1U, countMmio<FamilyType>(hwParser.cmdList.begin(), hwParser.cmdList.end(), DebugControlReg2::address));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3101,6 +3101,17 @@ TEST(KernelTest, givenKernelWhenForcePerDssBackedBufferProgrammingIsNotSetThenKe
|
||||||
EXPECT_FALSE(kernel.mockKernel->requiresPerDssBackedBuffer());
|
EXPECT_FALSE(kernel.mockKernel->requiresPerDssBackedBuffer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(KernelTest, whenKernelIsInitializedThenThreadArbitrationPolicyIsSetToDefaultValue) {
|
||||||
|
SPatchExecutionEnvironment sPatchExecutionEnvironment = {};
|
||||||
|
sPatchExecutionEnvironment.SubgroupIndependentForwardProgressRequired = true;
|
||||||
|
UltClDeviceFactory deviceFactory{1, 0};
|
||||||
|
MockKernelWithInternals mockKernelWithInternals{*deviceFactory.rootDevices[0], sPatchExecutionEnvironment};
|
||||||
|
|
||||||
|
auto &mockKernel = *mockKernelWithInternals.mockKernel;
|
||||||
|
auto &hwHelper = HwHelper::get(deviceFactory.rootDevices[0]->getHardwareInfo().platform.eRenderCoreFamily);
|
||||||
|
EXPECT_EQ(hwHelper.getDefaultThreadArbitrationPolicy(), mockKernel.threadArbitrationPolicy);
|
||||||
|
}
|
||||||
|
|
||||||
namespace NEO {
|
namespace NEO {
|
||||||
|
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
|
|
|
@ -45,7 +45,7 @@ CommandStreamReceiverHw<GfxFamily>::CommandStreamReceiverHw(ExecutionEnvironment
|
||||||
auto &hwHelper = HwHelper::get(peekHwInfo().platform.eRenderCoreFamily);
|
auto &hwHelper = HwHelper::get(peekHwInfo().platform.eRenderCoreFamily);
|
||||||
localMemoryEnabled = hwHelper.getEnableLocalMemory(peekHwInfo());
|
localMemoryEnabled = hwHelper.getEnableLocalMemory(peekHwInfo());
|
||||||
|
|
||||||
requiredThreadArbitrationPolicy = PreambleHelper<GfxFamily>::getDefaultThreadArbitrationPolicy();
|
requiredThreadArbitrationPolicy = hwHelper.getDefaultThreadArbitrationPolicy();
|
||||||
resetKmdNotifyHelper(new KmdNotifyHelper(&peekHwInfo().capabilityTable.kmdNotifyProperties));
|
resetKmdNotifyHelper(new KmdNotifyHelper(&peekHwInfo().capabilityTable.kmdNotifyProperties));
|
||||||
flatBatchBufferHelper.reset(new FlatBatchBufferHelperHw<GfxFamily>(executionEnvironment));
|
flatBatchBufferHelper.reset(new FlatBatchBufferHelperHw<GfxFamily>(executionEnvironment));
|
||||||
defaultSshSize = getSshHeapSize();
|
defaultSshSize = getSshHeapSize();
|
||||||
|
|
|
@ -21,6 +21,11 @@ std::string HwHelperHw<Family>::getExtensions() const {
|
||||||
return "cl_intel_subgroup_local_block_io ";
|
return "cl_intel_subgroup_local_block_io ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
uint32_t HwHelperHw<Family>::getDefaultThreadArbitrationPolicy() const {
|
||||||
|
return ThreadArbitrationPolicy::RoundRobinAfterDependency;
|
||||||
|
}
|
||||||
|
|
||||||
template class HwHelperHw<Family>;
|
template class HwHelperHw<Family>;
|
||||||
template class FlatBatchBufferHelperHw<Family>;
|
template class FlatBatchBufferHelperHw<Family>;
|
||||||
template struct MemorySynchronizationCommands<Family>;
|
template struct MemorySynchronizationCommands<Family>;
|
||||||
|
|
|
@ -63,11 +63,6 @@ void PreambleHelper<ICLFamily>::addPipeControlBeforeVfeCmd(LinearStream *pComman
|
||||||
*pipeControl = cmd;
|
*pipeControl = cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
|
||||||
uint32_t PreambleHelper<ICLFamily>::getDefaultThreadArbitrationPolicy() {
|
|
||||||
return ThreadArbitrationPolicy::RoundRobinAfterDependency;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void PreambleHelper<ICLFamily>::programThreadArbitration(LinearStream *pCommandStream, uint32_t requiredThreadArbitrationPolicy) {
|
void PreambleHelper<ICLFamily>::programThreadArbitration(LinearStream *pCommandStream, uint32_t requiredThreadArbitrationPolicy) {
|
||||||
UNRECOVERABLE_IF(requiredThreadArbitrationPolicy == ThreadArbitrationPolicy::NotPresent);
|
UNRECOVERABLE_IF(requiredThreadArbitrationPolicy == ThreadArbitrationPolicy::NotPresent);
|
||||||
|
|
|
@ -34,6 +34,11 @@ uint32_t HwHelperHw<Family>::getMetricsLibraryGenId() const {
|
||||||
return static_cast<uint32_t>(MetricsLibraryApi::ClientGen::Gen9);
|
return static_cast<uint32_t>(MetricsLibraryApi::ClientGen::Gen9);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
uint32_t HwHelperHw<Family>::getDefaultThreadArbitrationPolicy() const {
|
||||||
|
return ThreadArbitrationPolicy::RoundRobin;
|
||||||
|
}
|
||||||
|
|
||||||
template class HwHelperHw<Family>;
|
template class HwHelperHw<Family>;
|
||||||
template class FlatBatchBufferHelperHw<Family>;
|
template class FlatBatchBufferHelperHw<Family>;
|
||||||
template struct MemorySynchronizationCommands<Family>;
|
template struct MemorySynchronizationCommands<Family>;
|
||||||
|
|
|
@ -63,11 +63,6 @@ void PreambleHelper<SKLFamily>::addPipeControlBeforeVfeCmd(LinearStream *pComman
|
||||||
*pipeControl = cmd;
|
*pipeControl = cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
|
||||||
uint32_t PreambleHelper<SKLFamily>::getDefaultThreadArbitrationPolicy() {
|
|
||||||
return ThreadArbitrationPolicy::RoundRobin;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void PreambleHelper<SKLFamily>::programThreadArbitration(LinearStream *pCommandStream, uint32_t requiredThreadArbitrationPolicy) {
|
void PreambleHelper<SKLFamily>::programThreadArbitration(LinearStream *pCommandStream, uint32_t requiredThreadArbitrationPolicy) {
|
||||||
UNRECOVERABLE_IF(requiredThreadArbitrationPolicy == ThreadArbitrationPolicy::NotPresent);
|
UNRECOVERABLE_IF(requiredThreadArbitrationPolicy == ThreadArbitrationPolicy::NotPresent);
|
||||||
|
|
|
@ -120,6 +120,7 @@ class HwHelper {
|
||||||
virtual bool isBankOverrideRequired(const HardwareInfo &hwInfo) const = 0;
|
virtual bool isBankOverrideRequired(const HardwareInfo &hwInfo) const = 0;
|
||||||
virtual bool isSpecialWorkgroupSizeRequired(const HardwareInfo &hwInfo, bool isSimulation) const = 0;
|
virtual bool isSpecialWorkgroupSizeRequired(const HardwareInfo &hwInfo, bool isSimulation) const = 0;
|
||||||
virtual uint32_t getGlobalTimeStampBits() const = 0;
|
virtual uint32_t getGlobalTimeStampBits() const = 0;
|
||||||
|
virtual uint32_t getDefaultThreadArbitrationPolicy() const = 0;
|
||||||
|
|
||||||
static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo);
|
static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo);
|
||||||
static uint32_t getEnginesCount(const HardwareInfo &hwInfo);
|
static uint32_t getEnginesCount(const HardwareInfo &hwInfo);
|
||||||
|
@ -304,6 +305,8 @@ class HwHelperHw : public HwHelper {
|
||||||
|
|
||||||
bool isBankOverrideRequired(const HardwareInfo &hwInfo) const override;
|
bool isBankOverrideRequired(const HardwareInfo &hwInfo) const override;
|
||||||
|
|
||||||
|
uint32_t getDefaultThreadArbitrationPolicy() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override;
|
LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override;
|
||||||
|
|
||||||
|
|
|
@ -466,4 +466,9 @@ bool HwHelperHw<GfxFamily>::isBankOverrideRequired(const HardwareInfo &hwInfo) c
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename GfxFamily>
|
||||||
|
uint32_t HwHelperHw<GfxFamily>::getDefaultThreadArbitrationPolicy() const {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|
|
@ -33,7 +33,6 @@ struct PreambleHelper {
|
||||||
static void programPipelineSelect(LinearStream *pCommandStream,
|
static void programPipelineSelect(LinearStream *pCommandStream,
|
||||||
const PipelineSelectArgs &pipelineSelectArgs,
|
const PipelineSelectArgs &pipelineSelectArgs,
|
||||||
const HardwareInfo &hwInfo);
|
const HardwareInfo &hwInfo);
|
||||||
static uint32_t getDefaultThreadArbitrationPolicy();
|
|
||||||
static void programThreadArbitration(LinearStream *pCommandStream, uint32_t requiredThreadArbitrationPolicy);
|
static void programThreadArbitration(LinearStream *pCommandStream, uint32_t requiredThreadArbitrationPolicy);
|
||||||
static void programPreemption(LinearStream *pCommandStream, Device &device, GraphicsAllocation *preemptionCsr);
|
static void programPreemption(LinearStream *pCommandStream, Device &device, GraphicsAllocation *preemptionCsr);
|
||||||
static void addPipeControlBeforeVfeCmd(LinearStream *pCommandStream, const HardwareInfo *hwInfo, aub_stream::EngineType engineType);
|
static void addPipeControlBeforeVfeCmd(LinearStream *pCommandStream, const HardwareInfo *hwInfo, aub_stream::EngineType engineType);
|
||||||
|
|
|
@ -31,11 +31,6 @@ size_t PreambleHelper<GfxFamily>::getThreadArbitrationCommandsSize() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename GfxFamily>
|
|
||||||
uint32_t PreambleHelper<GfxFamily>::getDefaultThreadArbitrationPolicy() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
void PreambleHelper<GfxFamily>::programGenSpecificPreambleWorkArounds(LinearStream *pCommandStream, const HardwareInfo &hwInfo) {
|
void PreambleHelper<GfxFamily>::programGenSpecificPreambleWorkArounds(LinearStream *pCommandStream, const HardwareInfo &hwInfo) {
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,5 +138,5 @@ GEN11TEST_F(ThreadArbitrationGen11, givenPreambleWhenItIsProgrammedThenThreadArb
|
||||||
}
|
}
|
||||||
|
|
||||||
GEN11TEST_F(ThreadArbitrationGen11, defaultArbitrationPolicy) {
|
GEN11TEST_F(ThreadArbitrationGen11, defaultArbitrationPolicy) {
|
||||||
EXPECT_EQ(ThreadArbitrationPolicy::RoundRobinAfterDependency, PreambleHelper<ICLFamily>::getDefaultThreadArbitrationPolicy());
|
EXPECT_EQ(ThreadArbitrationPolicy::RoundRobinAfterDependency, HwHelperHw<ICLFamily>::get().getDefaultThreadArbitrationPolicy());
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,7 +158,7 @@ GEN12LPTEST_F(ThreadArbitrationGen12Lp, givenPolicyWhenThreadArbitrationProgramm
|
||||||
PreambleHelper<FamilyType>::programThreadArbitration(&cs, ThreadArbitrationPolicy::RoundRobin);
|
PreambleHelper<FamilyType>::programThreadArbitration(&cs, ThreadArbitrationPolicy::RoundRobin);
|
||||||
|
|
||||||
EXPECT_EQ(0u, cs.getUsed());
|
EXPECT_EQ(0u, cs.getUsed());
|
||||||
EXPECT_EQ(0u, PreambleHelper<FamilyType>::getDefaultThreadArbitrationPolicy());
|
EXPECT_EQ(0u, HwHelperHw<FamilyType>::get().getDefaultThreadArbitrationPolicy());
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef PreambleFixture PreemptionWatermarkGen12LP;
|
typedef PreambleFixture PreemptionWatermarkGen12LP;
|
||||||
|
|
|
@ -82,7 +82,7 @@ BDWTEST_F(ThreadArbitrationGen8, givenPolicyWhenThreadArbitrationProgrammedThenD
|
||||||
MockDevice device;
|
MockDevice device;
|
||||||
EXPECT_EQ(0u, PreambleHelper<BDWFamily>::getAdditionalCommandsSize(device));
|
EXPECT_EQ(0u, PreambleHelper<BDWFamily>::getAdditionalCommandsSize(device));
|
||||||
EXPECT_EQ(0u, PreambleHelper<BDWFamily>::getThreadArbitrationCommandsSize());
|
EXPECT_EQ(0u, PreambleHelper<BDWFamily>::getThreadArbitrationCommandsSize());
|
||||||
EXPECT_EQ(0u, PreambleHelper<BDWFamily>::getDefaultThreadArbitrationPolicy());
|
EXPECT_EQ(0u, HwHelperHw<BDWFamily>::get().getDefaultThreadArbitrationPolicy());
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef PreambleFixture Gen8UrbEntryAllocationSize;
|
typedef PreambleFixture Gen8UrbEntryAllocationSize;
|
||||||
|
|
|
@ -100,7 +100,7 @@ SKLTEST_F(ThreadArbitration, givenPreambleWhenItIsProgrammedThenThreadArbitratio
|
||||||
}
|
}
|
||||||
|
|
||||||
SKLTEST_F(ThreadArbitration, defaultArbitrationPolicy) {
|
SKLTEST_F(ThreadArbitration, defaultArbitrationPolicy) {
|
||||||
EXPECT_EQ(ThreadArbitrationPolicy::RoundRobin, PreambleHelper<SKLFamily>::getDefaultThreadArbitrationPolicy());
|
EXPECT_EQ(ThreadArbitrationPolicy::RoundRobin, HwHelperHw<SKLFamily>::get().getDefaultThreadArbitrationPolicy());
|
||||||
}
|
}
|
||||||
|
|
||||||
GEN9TEST_F(PreambleVfeState, WaOff) {
|
GEN9TEST_F(PreambleVfeState, WaOff) {
|
||||||
|
|
Loading…
Reference in New Issue