summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index 43ab00f..bcb0dd0 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -23395,6 +23395,17 @@ static u64 gsp_phys_gr_wit_first8[GSP_PHYS_GR_WIT_MAX];
static u32 gsp_phys_gr_wit_n;
static u32 gsp_phys_gr_wit_rep_log;
+/*
+ * CONT-111: the changed-page line budget was a hardcoded 4; a store-rich
+ * launch (r1378 reached 305/903 relocated-operand pages) needs the whole
+ * list to find the render target among the operand pages. 0 keeps the
+ * summary line only.
+ */
+static u32 gsp_phys_gr_wit_shown = 4;
+module_param_named(sema_gl_wit_shown, gsp_phys_gr_wit_shown, uint, 0644);
+MODULE_PARM_DESC(sema_gl_wit_shown,
+ "Max GUEST-WIT changed va/pa lines per report (default 4; CONT-111 RT hunt)");
+
static void gsp_phys_gr_wit_reset(void)
{
gsp_phys_gr_wit_n = 0;
@@ -23471,7 +23482,7 @@ static u32 gsp_phys_gr_wit_report(const char *where)
* vertex/float data means the guest CPU rewrote its
* buffer while the engine ran.
*/
- if (shown < 4) {
+ if (shown < gsp_phys_gr_wit_shown) {
shown++;
pr_info("vgsp-gr: GUEST-WIT %s changed va=0x%llx pa=0x%llx pre=0x%016llx post=0x%016llx\n",
where,