On Fri, 17 Feb 2017 09:33:55 -0600 Derek Foreman <[email protected]> said:
> On 16/02/17 05:56 PM, Carsten Haitzler (The Rasterman) wrote: > > On Thu, 16 Feb 2017 09:39:40 -0500 Christopher Michael > > <[email protected]> said: > > > >> On 02/16/2017 09:08 AM, Derek Foreman wrote: > >>> 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. > >>> > >> > >> Agreed. I was testing some support for rotating Outputs (in drm2) via > >> Evas software rotation. Due to various issues with a given FBO, the ERR > >> here was being spewed quite a lot on the console. So Derek and I spoke > >> and came to the agreement that we can just spit this out once and things > >> will be fine. > > > > hmmm... i guess. an alternative is to rate limit it too... eg if error > > happens, if # of swaps since last error print > x then print, else > > suppress... then you know if it's a one-off or if it does keep happening... > > Yup, but we do have to ask ourselves if we really care? > > If it happens once ever it's a bug that needs to be reported to someone. > If it happens twice, it's still a bug that needs to be reported (once) > to someone. If it happens three times... I think you know where I'm > going with this. ;) but then "why is my screen stuttering" is not easily answerable... is it because of more and more and more of these fixups/retries or something else? where do i start hunting... :) > And you'll still get the "completed after N attempts" as DBG if you're > truly curious... i guess. as long as we get that. > As long as it's an ERR (at least) once, I'm happy. Rate limit, one time > print, either of these are fine to me. :) > > Thanks, > Derek > > >> Cheers, > >> dh > >> > >> > >>>>> --- > >>>>> 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) > >>>>> { > >>>>> > >>>>> -- > >>>>> > >>>>> > >> > >> > >> > >> ------------------------------------------------------------------------------ > >> 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 > >> > > > > > > > ------------------------------------------------------------------------------ > 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 > -- ------------- 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
