From 70b987dcf1ed34a13201716655ae9a47a4ee0814 Mon Sep 17 00:00:00 2001 From: Tejal Kudav Date: Mon, 21 Feb 2022 02:47:16 +0000 Subject: [PATCH] gpu: nvgpu: Update CTXSW_TIMEOUT to 10ms The current value of CTXSW_TIMEOUT (100ms) is too large and does not meet the FTTI budget of 100ms. Update the value to 10 ms - 1. It seems well within FTTI - with some budget for recovery if needed. The WCET for recovery is around 55ms. 2. It can be easily updated if needed later Change-Id: If2ea3664c92d7426d1543d15614723e38b63aabd Signed-off-by: Tejal Kudav Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2672872 Reviewed-by: Vijayakumar Subbu GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/include/nvgpu/fifo.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nvgpu/include/nvgpu/fifo.h b/drivers/gpu/nvgpu/include/nvgpu/fifo.h index a8712d1cb..4301a6309 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/fifo.h +++ b/drivers/gpu/nvgpu/include/nvgpu/fifo.h @@ -216,10 +216,21 @@ */ #define INVAL_ID (~U32(0U)) /** - * Timeout after which ctxsw timeout interrupt (if enabled by s/w) will be - * triggered by h/w if context fails to context switch. + * Timeout after which ctxsw timeout interrupt (if enabled by s/w) + * will be triggered by h/w if context fails to context switch. + * Typical ctxsw times should be in order of tens or hundreds of + * microseconds at least in Auto usecase with no vGPU etc. This is + * an assumption as we do not value data from HW on typical CTXSW times. + * For safety, we have FTTI budget of 100 ms. FTTI should include the + * diagnostic interrupt latency, and SW “fix” (timeout action may + * include recovery). The WCET for recovery is around 55ms. + * So, CTXSW timeout value should be somewhere in between hundreds of + * microseconds to 45 ms. + * Chooe CTXSW_TIMEOUT value to be 10ms - + * 1. It seems well within FTTI (with some budget for recovery if needed) + * 2. It can be easily updated if needed later. */ -#define CTXSW_TIMEOUT_PERIOD_MS 100U +#define CTXSW_TIMEOUT_PERIOD_MS 10U /** Subctx id 0 */ #define CHANNEL_INFO_VEID0 0U