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