diff options
Diffstat (limited to 'kernel/gsp_display_engine.c')
| -rw-r--r-- | kernel/gsp_display_engine.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/kernel/gsp_display_engine.c b/kernel/gsp_display_engine.c index c522a93..bc37a5d 100644 --- a/kernel/gsp_display_engine.c +++ b/kernel/gsp_display_engine.c @@ -213,17 +213,25 @@ module_param_named(disp_events, gsp_disp_events, uint, 0644); MODULE_PARM_DESC(disp_events, "Post the channel completion event on an armed UPDATE (default 1)"); /* - * r1765: strict display-event delivery. Default 0 keeps the legacy - * behaviour bit-for-bit (full A/B revert); when set, an armed UPDATE posts - * only to the events registered on that channel (no all-events fallback), - * and unrelated completions/the 0.5 s hint skip display-channel events - * (see gsp_disp_engine_owns_object()). Live A/B: echo 1 > - * /sys/module/vgsp/parameters/disp_events_strict. + * r1765: strict display-event delivery. An armed UPDATE posts only to the + * events registered on that channel (no all-events fallback), and unrelated + * completions/the 0.5 s hint skip display-channel events (see + * gsp_disp_engine_owns_object()). Default was 0 (legacy) through the r1771 + * A/B; r1771 measured: assoc=1 alone -> flip WARNs + burst storms, + * assoc=1 + strict=1 -> 0 flip WARNs. r1780 receipts (eng5 c160): the + * legacy non-strict path fell through to the all-events shotgun for every + * UPDATE (NVKMS events register hSrc=0), the guest's status-queue read + * cursor fell 20-44 slots behind, and the flip event arrived after the + * 3 s NvDrm flip window -> "Flip event timeout on head 0". With the r1780 + * ev_assoc default the exact match (h_object == alloc-parent of the NVKMS + * flip event) succeeds, so strict mode delivers 1:1; a miss returns + * -ENOENT and the pump's retry re-posts. Still runtime-writable for A/B: + * echo 0 > /sys/module/vgsp/parameters/disp_events_strict. */ -static unsigned gsp_disp_events_strict = 0; +static unsigned gsp_disp_events_strict = 1; module_param_named(disp_events_strict, gsp_disp_events_strict, uint, 0644); MODULE_PARM_DESC(disp_events_strict, - "Deliver a display UPDATE completion only to events registered on that channel, no all-events fallback (default 0 = legacy; 1 = r1765 strict)"); + "Deliver a display UPDATE completion only to events registered on that channel, no all-events fallback (default 1 = r1780; 0 = legacy)"); static unsigned long long gsp_disp_notifier_pa; module_param_named(disp_notifier_pa, gsp_disp_notifier_pa, ullong, 0644); |
