Commit b1b53771 authored by Dalit Ben Zoor's avatar Dalit Ben Zoor Committed by Oded Gabbay
Browse files

habanalabs: increase timeout if working with simulator



Where there is a spike in the CPU consumption, it may cause
random failures in the C/I since the KMD timeout for CPU
and/or QMAN0 jobs expires and it stops communicating to the simulator.
This commit fixes it by increasing timeout on polling functions
if working with simulator.

Signed-off-by: default avatarDalit Ben Zoor <dbenzoor@habana.ai>
Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
parent f0539fb0
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -1147,7 +1147,13 @@ int hl_poll_timeout_memory(struct hl_device *hdev, u64 addr,
	 * either by the direct access of the device or by another core
	 */
	u32 *paddr = (u32 *) (uintptr_t) addr;
	ktime_t timeout = ktime_add_us(ktime_get(), timeout_us);
	ktime_t timeout;

	/* timeout should be longer when working with simulator */
	if (!hdev->pdev)
		timeout_us *= 10;

	timeout = ktime_add_us(ktime_get(), timeout_us);

	might_sleep();

+6 −1
Original line number Diff line number Diff line
@@ -1042,7 +1042,12 @@ void hl_wreg(struct hl_device *hdev, u32 reg, u32 val);

#define hl_poll_timeout(hdev, addr, val, cond, sleep_us, timeout_us) \
({ \
	ktime_t __timeout = ktime_add_us(ktime_get(), timeout_us); \
	ktime_t __timeout; \
	/* timeout should be longer when working with simulator */ \
	if (hdev->pdev) \
		__timeout = ktime_add_us(ktime_get(), timeout_us); \
	else \
		__timeout = ktime_add_us(ktime_get(), (timeout_us * 10)); \
	might_sleep_if(sleep_us); \
	for (;;) { \
		(val) = RREG32(addr); \