55 *
66 */
77
8- #include " shared/source/helpers/file_io.h"
9- #include " shared/source/helpers/hw_info.h"
10- #include " shared/source/os_interface/device_factory.h"
118#include " shared/source/os_interface/linux/os_context_linux.h"
12- #include " shared/source/os_interface/os_interface.h"
139#include " shared/test/common/helpers/debug_manager_state_restore.h"
1410#include " shared/test/common/helpers/default_hw_info.h"
1511#include " shared/test/common/helpers/engine_descriptor_helper.h"
1612
17- #include " opencl/test/unit_test/fixtures/memory_management_fixture.h"
1813#include " opencl/test/unit_test/mocks/mock_platform.h"
1914#include " opencl/test/unit_test/os_interface/linux/drm_mock.h"
2015
2116#include " gtest/gtest.h"
2217
23- #include < fstream>
24- #include < memory>
25-
2618using namespace NEO ;
2719
2820TEST (DrmTest, WhenGettingDeviceIdThenCorrectIdReturned) {
@@ -186,46 +178,6 @@ TEST(DrmTest, GivenDrmWhenAskedForContextThatFailsThenFalseIsReturned) {
186178 delete pDrm;
187179}
188180
189- TEST (DrmTest, givenDrmWhenOsContextIsCreatedThenCreateAndDestroyNewDrmOsContext) {
190- auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
191- executionEnvironment->prepareRootDeviceEnvironments (1 );
192- DrmMock drmMock (*executionEnvironment->rootDeviceEnvironments [0 ]);
193- executionEnvironment->rootDeviceEnvironments [0 ]->setHwInfo (defaultHwInfo.get ());
194-
195- {
196- OsContextLinux osContext1 (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ());
197- osContext1.ensureContextInitialized ();
198-
199- EXPECT_EQ (1u , osContext1.getDrmContextIds ().size ());
200- EXPECT_EQ (drmMock.receivedCreateContextId , osContext1.getDrmContextIds ()[0 ]);
201- EXPECT_EQ (0u , drmMock.receivedDestroyContextId );
202-
203- {
204- OsContextLinux osContext2 (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ());
205- osContext2.ensureContextInitialized ();
206- EXPECT_EQ (1u , osContext2.getDrmContextIds ().size ());
207- EXPECT_EQ (drmMock.receivedCreateContextId , osContext2.getDrmContextIds ()[0 ]);
208- EXPECT_EQ (0u , drmMock.receivedDestroyContextId );
209- }
210- }
211-
212- EXPECT_EQ (2u , drmMock.receivedContextParamRequestCount );
213- }
214-
215- TEST (DrmTest, whenCreatingDrmContextWithVirtualMemoryAddressSpaceThenProperVmIdIsSet) {
216- auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
217- executionEnvironment->prepareRootDeviceEnvironments (1 );
218- executionEnvironment->rootDeviceEnvironments [0 ]->setHwInfo (defaultHwInfo.get ());
219- DrmMock drmMock (*executionEnvironment->rootDeviceEnvironments [0 ]);
220-
221- ASSERT_EQ (1u , drmMock.virtualMemoryIds .size ());
222-
223- OsContextLinux osContext (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ());
224- osContext.ensureContextInitialized ();
225-
226- EXPECT_EQ (drmMock.receivedContextParamRequest .value , drmMock.getVirtualMemoryAddressSpace (0u ));
227- }
228-
229181TEST (DrmTest, whenCreatingDrmContextWithNoVirtualMemoryAddressSpaceThenProperContextIdIsSet) {
230182 auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
231183 executionEnvironment->prepareRootDeviceEnvironments (1 );
@@ -242,61 +194,6 @@ TEST(DrmTest, whenCreatingDrmContextWithNoVirtualMemoryAddressSpaceThenProperCon
242194 EXPECT_EQ (0u , drmMock.receivedContextParamRequestCount );
243195}
244196
245- TEST (DrmTest, givenDrmAndNegativeCheckNonPersistentContextsSupportWhenOsContextIsCreatedThenReceivedContextParamRequestCountReturnsCorrectValue) {
246- auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
247- executionEnvironment->prepareRootDeviceEnvironments (1 );
248- executionEnvironment->rootDeviceEnvironments [0 ]->setHwInfo (defaultHwInfo.get ());
249- DrmMock drmMock (*executionEnvironment->rootDeviceEnvironments [0 ]);
250- auto expectedCount = 0u ;
251-
252- {
253- drmMock.storedRetValForPersistant = -1 ;
254- drmMock.checkNonPersistentContextsSupport ();
255- expectedCount += 2 ;
256- OsContextLinux osContext (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ());
257- osContext.ensureContextInitialized ();
258- EXPECT_EQ (expectedCount, drmMock.receivedContextParamRequestCount );
259- }
260- {
261- drmMock.storedRetValForPersistant = 0 ;
262- drmMock.checkNonPersistentContextsSupport ();
263- ++expectedCount;
264- OsContextLinux osContext (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ());
265- osContext.ensureContextInitialized ();
266- expectedCount += 2 ;
267- EXPECT_EQ (expectedCount, drmMock.receivedContextParamRequestCount );
268- }
269- }
270-
271- TEST (DrmTest, givenDrmPreemptionEnabledAndLowPriorityEngineWhenCreatingOsContextThenCallSetContextPriorityIoctl) {
272- auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
273- executionEnvironment->prepareRootDeviceEnvironments (1 );
274- executionEnvironment->rootDeviceEnvironments [0 ]->setHwInfo (defaultHwInfo.get ());
275- DrmMock drmMock (*executionEnvironment->rootDeviceEnvironments [0 ]);
276- drmMock.preemptionSupported = false ;
277-
278- OsContextLinux osContext1 (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ());
279- osContext1.ensureContextInitialized ();
280- OsContextLinux osContext2 (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ({aub_stream::ENGINE_RCS, EngineUsage::LowPriority}));
281- osContext2.ensureContextInitialized ();
282-
283- EXPECT_EQ (2u , drmMock.receivedContextParamRequestCount );
284-
285- drmMock.preemptionSupported = true ;
286-
287- OsContextLinux osContext3 (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ());
288- osContext3.ensureContextInitialized ();
289- EXPECT_EQ (3u , drmMock.receivedContextParamRequestCount );
290-
291- OsContextLinux osContext4 (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ({aub_stream::ENGINE_RCS, EngineUsage::LowPriority}));
292- osContext4.ensureContextInitialized ();
293- EXPECT_EQ (5u , drmMock.receivedContextParamRequestCount );
294- EXPECT_EQ (drmMock.receivedCreateContextId , drmMock.receivedContextParamRequest .ctx_id );
295- EXPECT_EQ (static_cast <uint64_t >(I915_CONTEXT_PARAM_PRIORITY), drmMock.receivedContextParamRequest .param );
296- EXPECT_EQ (static_cast <uint64_t >(-1023 ), drmMock.receivedContextParamRequest .value );
297- EXPECT_EQ (0u , drmMock.receivedContextParamRequest .size );
298- }
299-
300197TEST (DrmTest, WhenGettingExecSoftPinThenCorrectValueIsReturned) {
301198 auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
302199 executionEnvironment->prepareRootDeviceEnvironments (1 );
@@ -577,24 +474,6 @@ TEST(DrmTest, givenPerContextVMRequiredWhenCreatingOsContextsForRootDeviceThenIm
577474 EXPECT_EQ (0u , drmVmIds[31 ]);
578475}
579476
580- TEST (DrmTest, givenNoPerContextVmsDrmWhenCreatingOsContextsThenVmIdIsNotQueriedAndStored) {
581- auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
582- executionEnvironment->prepareRootDeviceEnvironments (1 );
583- executionEnvironment->rootDeviceEnvironments [0 ]->setHwInfo (defaultHwInfo.get ());
584- DrmMock drmMock (*executionEnvironment->rootDeviceEnvironments [0 ]);
585- EXPECT_FALSE (drmMock.requirePerContextVM );
586-
587- drmMock.storedRetValForVmId = 1 ;
588-
589- OsContextLinux osContext (drmMock, 0u , EngineDescriptorHelper::getDefaultDescriptor ());
590- osContext.ensureContextInitialized ();
591- EXPECT_EQ (0u , drmMock.receivedCreateContextId );
592- EXPECT_EQ (1u , drmMock.receivedContextParamRequestCount );
593-
594- auto &drmVmIds = osContext.getDrmVmIds ();
595- EXPECT_EQ (0u , drmVmIds.size ());
596- }
597-
598477TEST (DrmTest, givenProgramDebuggingAndContextDebugAvailableWhenCreatingContextThenSetContextDebugFlagIsCalled) {
599478 auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
600479 executionEnvironment->setDebuggingEnabled ();
0 commit comments