diff options
Diffstat (limited to 'kernel/gsp_rm_emulation.c')
| -rw-r--r-- | kernel/gsp_rm_emulation.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/kernel/gsp_rm_emulation.c b/kernel/gsp_rm_emulation.c index 0cef9e7..957729b 100644 --- a/kernel/gsp_rm_emulation.c +++ b/kernel/gsp_rm_emulation.c @@ -818,16 +818,26 @@ unsigned gsp_rm_ev_cl; */ unsigned gsp_rm_ev_func; /* - * r1767: gate the r1765 flip-event association (hSrcResource == 0 -> - * alloc-header hParent). Default 0 keeps the pre-r1766 event semantics; - * the RCA exonerated the association from the r1766 soft-locks but not - * from the r1766 ISR crash class, so it stays off until validated - * end-to-end. + * r1765 flip-event association (hSrcResource == 0 -> alloc-header hParent). + * Default was 0 (pre-r1766 semantics) pending through r1771 A/B validation; + * r1771 measured on the live stack: assoc=1 alone -> flip WARNs + burst + * storms, assoc=1 + disp_events_strict=1 -> 0 flip WARNs (the r1771 X death + * was the separate DDX channel-idle wall, since fixed by 13a0c5d6/acb51d53). + * r1780 rationale (c160 receipts, eng5 session): NVKMS/kernel-callback + * events register hSrc=0, so every completion rode the all-events shotgun + * (6-7 POST_EVENT records per completion). The guest stat-queue read + * cursor sat 20-44 slots behind our write pointer, rc=-11 (ring full) + * refusals burst during X starts, and flip-event records reached the guest + * long after the 3 s NvDrm flip window -> "Flip event timeout on head 0" + * x7 per X start with zero nvidia-modeset kthread delivery. With the + * association the display UPDATE post (h_object=0x1001b) exact-matches only + * the NVKMS flip events registered on that channel: 1:1 delivery, no flood. + * Still runtime-writable for A/B. */ -static bool gsp_rm_ev_assoc; /* default 0: pre-r1766 event semantics */ +static bool gsp_rm_ev_assoc = true; /* r1780: default 1 (validated r1771+r1780) */ module_param_named(ev_assoc, gsp_rm_ev_assoc, bool, 0644); MODULE_PARM_DESC(ev_assoc, - "associate hSrcResource==0 events with their alloc parent (r1765 flip-event fix; default 0)"); + "associate hSrcResource==0 events with their alloc parent (r1765 flip-event fix; default 1)"); static void gsp_rm_fill_ev_payload(const struct gsp_rm_emu *rm, u32 i, u8 *payload) |
