xf86-video-intel: src/intel_dri.c

Chris Wilson ickle at kemper.freedesktop.org
Sat Feb 19 11:06:50 PST 2011


 src/intel_dri.c |   48 ++++++++++++++++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 16 deletions(-)

New commits:
commit 9599fde65a0d8b7e7c85199346f7b620bdd8388d
Author: Bryce Harrington <bryce at canonical.com>
Date:   Tue Feb 15 22:30:18 2011 -0800

    Quell excessively verbose vblank counter failed error messages
    
    Certain error situations can result in the following printed to
    Xorg.0.log at a high enough rate to make log file size a problem.
    
    (WW) intel(0): I830DRI2GetMSC:1062 get vblank counter failed: Invalid argument
    (WW) intel(0): I830DRI2ScheduleWaitMSC:1118 get vblank counter failed: Invalid argument
    
    Following in the tradition of commit 0ad6d6e1, limit the warnings to be
    output 5 times, then quell the remainder.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34322
    Ref.: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/710594
    
    Signed-off-by: Bryce Harrington <bryce at canonical.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/intel_dri.c b/src/intel_dri.c
index 7b60e14..65c8f39 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -1057,10 +1057,14 @@ I830DRI2GetMSC(DrawablePtr draw, CARD64 *ust, CARD64 *msc)
 
 	ret = drmWaitVBlank(intel->drmSubFD, &vbl);
 	if (ret) {
-		xf86DrvMsg(scrn->scrnIndex, X_WARNING,
-			   "%s:%d get vblank counter failed: %s\n",
-			   __FUNCTION__, __LINE__,
-			   strerror(errno));
+		static int limit = 5;
+		if (limit) {
+			xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+				   "%s:%d get vblank counter failed: %s\n",
+				   __FUNCTION__, __LINE__,
+				   strerror(errno));
+			limit--;
+		}
 		return FALSE;
 	}
 
@@ -1113,10 +1117,14 @@ I830DRI2ScheduleWaitMSC(ClientPtr client, DrawablePtr draw, CARD64 target_msc,
 	vbl.request.sequence = 0;
 	ret = drmWaitVBlank(intel->drmSubFD, &vbl);
 	if (ret) {
-		xf86DrvMsg(scrn->scrnIndex, X_WARNING,
-			   "%s:%d get vblank counter failed: %s\n",
-			   __FUNCTION__, __LINE__,
-			   strerror(errno));
+		static int limit = 5;
+		if (limit) {
+			xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+				   "%s:%d get vblank counter failed: %s\n",
+				   __FUNCTION__, __LINE__,
+				   strerror(errno));
+			limit--;
+		}
 		goto out_complete;
 	}
 
@@ -1143,10 +1151,14 @@ I830DRI2ScheduleWaitMSC(ClientPtr client, DrawablePtr draw, CARD64 target_msc,
 		vbl.request.signal = (unsigned long)wait_info;
 		ret = drmWaitVBlank(intel->drmSubFD, &vbl);
 		if (ret) {
-			xf86DrvMsg(scrn->scrnIndex, X_WARNING,
-				   "%s:%d get vblank counter failed: %s\n",
-				   __FUNCTION__, __LINE__,
-				   strerror(errno));
+			static int limit = 5;
+			if (limit) {
+				xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+					   "%s:%d get vblank counter failed: %s\n",
+					   __FUNCTION__, __LINE__,
+					   strerror(errno));
+				limit--;
+			}
 			goto out_complete;
 		}
 
@@ -1178,10 +1190,14 @@ I830DRI2ScheduleWaitMSC(ClientPtr client, DrawablePtr draw, CARD64 target_msc,
 	vbl.request.signal = (unsigned long)wait_info;
 	ret = drmWaitVBlank(intel->drmSubFD, &vbl);
 	if (ret) {
-		xf86DrvMsg(scrn->scrnIndex, X_WARNING,
-			   "%s:%d get vblank counter failed: %s\n",
-			   __FUNCTION__, __LINE__,
-			   strerror(errno));
+		static int limit = 5;
+		if (limit) {
+			xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+				   "%s:%d get vblank counter failed: %s\n",
+				   __FUNCTION__, __LINE__,
+				   strerror(errno));
+			limit--;
+		}
 		goto out_complete;
 	}
 


More information about the xorg-commit mailing list