• Daniel Vetter's avatar
    drm/vblank: Document and fix vblank count barrier semantics · bd7e3f3b
    Daniel Vetter authored
    Noticed while reviewing code. I'm not sure whether this might or might
    not explain some of the missed vblank hilarity we've been seeing on
    various drivers (but those got tracked down to driver issues, at least
    mostly). I think those all go through the vblank completion event,
    which has unconditional barriers - it always takes the spinlock.
    Therefore no cc stable.
    
    v2:
    - Barrriers are hard, put them in in the right order (Chris).
    - Improve the comments a bit.
    
    v3:
    
    Ville noticed that on 32bit we might be breaking up the load/stores,
    now that the vblank counter has been switched over to be 64 bit. Fix
    that up by switching to atomic64_t. This this happens so rarely in
    practice I figured no need to cc: stable ...
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Keith Packard <keithp@keithp.com>
    References: 570e8696 ("drm: Widen vblank count to 64-bits [v3]")
    Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190723131337.22031-1-daniel.vetter@ffwll.ch
    bd7e3f3b
drm_vblank.c 60.2 KB