On Thu, 16 Feb 2017 08:08:22 -0600 Derek Foreman <[email protected]> said:

> On 15/02/17 07:59 PM, Carsten Haitzler (The Rasterman) wrote:
> > 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... :)
> 
> Chris hit it somehow and replaced all the ERR with DBG - I think it's an 
> important enough error to be an ERR at least once, so I figured this was 
> a reasonable compromise.

orly? hmmm... i just saw occasional blips (~every minute or so) so i kind of
thought it was ok... but hmmm... interesting he hit is solidly.

> >> ---
> >>  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