feature: debug flag to change ULLS BCS timeout

Related-To: HSD-18040119232

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2024-10-23 15:55:31 +00:00
committed by Compute-Runtime-Automation
parent ac9386e190
commit 9d76158c1f
7 changed files with 138 additions and 20 deletions

View File

@@ -31,7 +31,7 @@ using SteadyClock = std::chrono::steady_clock;
struct TimeoutParams {
std::chrono::microseconds maxTimeout;
std::chrono::microseconds timeout;
int timeoutDivisor;
int32_t timeoutDivisor;
bool directSubmissionEnabled;
};
@@ -40,6 +40,12 @@ struct WaitForPagingFenceRequest {
uint64_t pagingFenceValue;
};
enum class TimeoutElapsedMode {
notElapsed,
bcsOnly,
fullyElapsed
};
class DirectSubmissionController {
public:
static constexpr size_t defaultTimeout = 5'000;
@@ -98,7 +104,8 @@ class DirectSubmissionController {
size_t getTimeoutParamsMapKey(QueueThrottle throttle, bool acLineStatus);
void handlePagingFenceRequests(std::unique_lock<std::mutex> &lock, bool checkForNewSubmissions);
MOCKABLE_VIRTUAL bool timeoutElapsed();
MOCKABLE_VIRTUAL TimeoutElapsedMode timeoutElapsed();
std::chrono::microseconds getSleepValue() const { return std::chrono::microseconds(this->timeout / this->bcsTimeoutDivisor); }
uint32_t maxCcsCount = 1u;
std::array<uint32_t, DeviceBitfield().size()> ccsCount = {};
@@ -113,7 +120,8 @@ class DirectSubmissionController {
SteadyClock::time_point lastTerminateCpuTimestamp{};
std::chrono::microseconds maxTimeout{defaultTimeout};
std::chrono::microseconds timeout{defaultTimeout};
int timeoutDivisor = 1;
int32_t timeoutDivisor = 1;
int32_t bcsTimeoutDivisor = 1;
std::unordered_map<size_t, TimeoutParams> timeoutParamsMap;
QueueThrottle lowestThrottleSubmitted = QueueThrottle::HIGH;
bool adjustTimeoutOnThrottleAndAcLineStatus = false;