On Wed, 15 Feb 2017 08:02:02 -0800 Derek Foreman <[email protected]> said:

> derekf pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=ae5d00246667e0a37b123fef4618b670021f5d9e
> 
> commit ae5d00246667e0a37b123fef4618b670021f5d9e
> Author: Derek Foreman <[email protected]>
> Date:   Wed Feb 15 09:51:32 2017 -0600
> 
>     ecore_drm2: ERR once when page flip fails with EBUSY
>     
>     On systems where this happens it'll probably happen a lot, so
>     we don't want to continuously log this, but since it's definitely
>     showing a bug somewhere (efl or kernel) it probably should be an ERR.

hmmm... where i have seen this it doesn't happen THAT much... like it sometimes
happens in blips like 1 here, 15 seconds later, another, 1 min later another,
then maybe 2 mins later 3 in a row fast, then nothing for 10 sec... it's very
blippy. i logged these for a while myself... :)

> ---
>  src/lib/ecore_drm2/ecore_drm2_fb.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c
> b/src/lib/ecore_drm2/ecore_drm2_fb.c index f838168..fe27508 100644
> --- a/src/lib/ecore_drm2/ecore_drm2_fb.c
> +++ b/src/lib/ecore_drm2/ecore_drm2_fb.c
> @@ -424,6 +424,7 @@ ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output
> *output) 
>          do
>            {
> +             static Eina_Bool bugged_about_bug = EINA_FALSE;
>               repeat = EINA_FALSE;
>               ret = sym_drmModePageFlip(fb->fd, output->crtc_id, fb->id,
>                                         DRM_MODE_PAGE_FLIP_EVENT,
> @@ -434,12 +435,18 @@ ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output
> *output)
>                * until we can flip or we give up (100 tries with a yield
>                * between each try). We can't expect everyone to run the
>                * latest bleeding edge kernel IF a workaround is possible
> -              * in userspace, so do this. */
> +              * in userspace, so do this.
> +              * We only report this as an ERR once since if it will
> +              * generate a huge amount of spam otherwise. */
>               if ((ret < 0) && (errno == EBUSY))
>                 {
>                    repeat = EINA_TRUE;
> -                  if (count == 0)
> -                    WRN("Pageflip fail - EBUSY from drmModePageFlip...");
> +                  if (count == 0 && !bugged_about_bug)
> +                    {
> +                       ERR("Pageflip fail - EBUSY from drmModePageFlip - "
> +                           "This is either a kernel bug or an EFL one.");
> +                       bugged_about_bug = EINA_TRUE;
> +                    }
>                    count++;
>                    if (count > 500)
>                      {
> 
> -- 
> 
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [email protected]


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to