mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
performance: set 1ms ulls timeout on linux
Related-To: NEO-13843 Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
04ad429e58
commit
8ae49b17ae
@@ -49,7 +49,11 @@ DirectSubmissionController::~DirectSubmissionController() {
|
||||
void DirectSubmissionController::registerDirectSubmission(CommandStreamReceiver *csr) {
|
||||
std::lock_guard<std::mutex> lock(directSubmissionsMutex);
|
||||
directSubmissions.insert(std::make_pair(csr, DirectSubmissionState()));
|
||||
this->overrideDirectSubmissionTimeouts(csr->getProductHelper());
|
||||
uint64_t timeoutUs = this->timeout.count();
|
||||
uint64_t maxTimeoutUs = this->maxTimeout.count();
|
||||
csr->getProductHelper().overrideDirectSubmissionTimeouts(timeoutUs, maxTimeoutUs);
|
||||
this->timeout = std::chrono::microseconds(timeoutUs);
|
||||
this->maxTimeout = std::chrono::microseconds(maxTimeoutUs);
|
||||
}
|
||||
|
||||
void DirectSubmissionController::unregisterDirectSubmission(CommandStreamReceiver *csr) {
|
||||
|
||||
@@ -100,7 +100,6 @@ class DirectSubmissionController {
|
||||
bool isCopyEngineOnDeviceIdle(uint32_t rootDeviceIndex, std::optional<TaskCountType> &bcsTaskCount);
|
||||
MOCKABLE_VIRTUAL bool sleep(std::unique_lock<std::mutex> &lock);
|
||||
MOCKABLE_VIRTUAL SteadyClock::time_point getCpuTimestamp();
|
||||
MOCKABLE_VIRTUAL void overrideDirectSubmissionTimeouts(const ProductHelper &productHelper);
|
||||
|
||||
void recalculateTimeout();
|
||||
void applyTimeoutForAcLineStatusAndThrottle(bool acLineConnected);
|
||||
|
||||
@@ -14,7 +14,4 @@ bool DirectSubmissionController::sleep(std::unique_lock<std::mutex> &lock) {
|
||||
return NEO::waitOnConditionWithPredicate(condVar, lock, getSleepValue(), [&] { return !pagingFenceRequests.empty(); });
|
||||
}
|
||||
|
||||
void DirectSubmissionController::overrideDirectSubmissionTimeouts(const ProductHelper &productHelper) {
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
#include "shared/source/direct_submission/direct_submission_controller.h"
|
||||
#include "shared/source/helpers/sleep.h"
|
||||
#include "shared/source/os_interface/product_helper.h"
|
||||
#include "shared/source/os_interface/windows/sys_calls_winmm.h"
|
||||
|
||||
#include <chrono>
|
||||
@@ -20,12 +19,4 @@ bool DirectSubmissionController::sleep(std::unique_lock<std::mutex> &lock) {
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
void DirectSubmissionController::overrideDirectSubmissionTimeouts(const ProductHelper &productHelper) {
|
||||
uint64_t timeoutUs = this->timeout.count();
|
||||
uint64_t maxTimeoutUs = this->maxTimeout.count();
|
||||
productHelper.overrideDirectSubmissionTimeouts(timeoutUs, maxTimeoutUs);
|
||||
this->timeout = std::chrono::microseconds(timeoutUs);
|
||||
this->maxTimeout = std::chrono::microseconds(maxTimeoutUs);
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
@@ -574,6 +574,28 @@ TEST_F(DirectSubmissionCheckForCopyEngineIdleTests, givenCheckBcsForDirectSubmis
|
||||
EXPECT_EQ(1u, ccsCsr->stopDirectSubmissionCalledTimes);
|
||||
}
|
||||
|
||||
TEST(DirectSubmissionControllerTests, givenDirectSubmissionControllerWhenRegisterCsrsThenTimeoutIsAdjusted) {
|
||||
MockExecutionEnvironment executionEnvironment;
|
||||
executionEnvironment.prepareRootDeviceEnvironments(1);
|
||||
executionEnvironment.initializeMemoryManager();
|
||||
DeviceBitfield deviceBitfield(1);
|
||||
|
||||
MockCommandStreamReceiver csr(executionEnvironment, 0, deviceBitfield);
|
||||
std::unique_ptr<OsContext> osContext(OsContext::create(nullptr, 0, 0,
|
||||
EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_CCS, EngineUsage::regular},
|
||||
PreemptionMode::ThreadGroup, deviceBitfield)));
|
||||
csr.setupContext(*osContext.get());
|
||||
|
||||
DirectSubmissionControllerMock controller;
|
||||
uint64_t timeoutUs{5'000};
|
||||
EXPECT_EQ(static_cast<uint64_t>(controller.timeout.count()), timeoutUs);
|
||||
controller.registerDirectSubmission(&csr);
|
||||
csr.getProductHelper().overrideDirectSubmissionTimeouts(timeoutUs, timeoutUs);
|
||||
EXPECT_EQ(static_cast<uint64_t>(controller.timeout.count()), timeoutUs);
|
||||
|
||||
controller.unregisterDirectSubmission(&csr);
|
||||
}
|
||||
|
||||
TEST(CommandStreamReceiverGetContextGroupIdTests, givenContextGroupWithPrimaryContextWhenGetContextGroupIdIsCalledThenReturnsPrimaryContextId) {
|
||||
MockExecutionEnvironment executionEnvironment;
|
||||
executionEnvironment.prepareRootDeviceEnvironments(1);
|
||||
|
||||
@@ -1066,17 +1066,4 @@ HWTEST2_F(WddmDirectSubmissionTest, givenRelaxedOrderingSchedulerRequiredWhenAsk
|
||||
EXPECT_EQ(expectedBaseEndSize, directSubmission.getSizeEnd(false));
|
||||
}
|
||||
|
||||
HWTEST_F(WddmDirectSubmissionTest, givenDirectSubmissionControllerWhenRegisterCsrsThenTimeoutIsAdjusted) {
|
||||
auto csr = device->getDefaultEngine().commandStreamReceiver;
|
||||
|
||||
DirectSubmissionControllerMock controller;
|
||||
uint64_t timeoutUs{5'000};
|
||||
EXPECT_EQ(static_cast<uint64_t>(controller.timeout.count()), timeoutUs);
|
||||
controller.registerDirectSubmission(csr);
|
||||
csr->getProductHelper().overrideDirectSubmissionTimeouts(timeoutUs, timeoutUs);
|
||||
EXPECT_EQ(static_cast<uint64_t>(controller.timeout.count()), timeoutUs);
|
||||
|
||||
controller.unregisterDirectSubmission(csr);
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
Reference in New Issue
Block a user