[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#208804: xserver-xfree86: [core server] crash when XAA pixmap cache server has to deal with heavily-fragmented offscreen memory



Package: xserver-xfree86
Version: 4.2.1-11
Severity: important
Tags: upstream, patch

Note to self: after this gets a bug number, set the submitter to Mr.
Winischhofer.

----- Forwarded message from Thomas Winischhofer <twini@xfree86.org> -----

From: Thomas Winischhofer <twini@xfree86.org>
To: debian-x@lists.debian.org
Subject: 4.3 strongly desired wishlist item (XAA fix)
Date: Tue, 02 Sep 2003 23:51:03 +0200
Message-ID: <[🔎] 3F5510C7.9050009@xfree86.org>
X-Mailing-List: <debian-x@lists.debian.org> archive/latest/10034
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030827 Debian/1.4-3
X-Spam-Status: No, hits=-0.6 required=4.0
	tests=PATCH_UNIFIED_DIFF,USER_AGENT_MOZILLA_UA,X_ACCEPT_LANG
	version=2.55-lists.debian.org_2003_08_30


2 weeks ago a fix for the pixmap cache was committed to CVS HEAD, with 
the following short description:

376. Fix an XAA pixmap cache server crash that can happen in some cases
      when the off-screen memory is heavily fragmented (David Dawes,
      based on #5752, Koike Kazuhiko, Chisato Yamauchi).

Summarized explanation: In some sitations, if memory is fragemented in a 
certain way (not neccessarily "heavily"), it can happen that the pixmap 
cache reserves a number of 512x512 slots, no 256x256 slots, and a few 
128x128 slots. The cache functions cannot deal with this, and send a 
null pointer to XAATileCache(), causing calls to driver accelerator 
functions with illegal coordinates. In most of the cases, this leads to 
a complete machine freeze.

Since I experienced this crash frequently lately (due to implementation 
of RENDER acceleration into the SiS driver), I would kindly ask the 
folks packaging XFree86 for Debian to include the attached short patch.

Thanks,

Thomas

-- 
Thomas Winischhofer
Vienna/Austria
thomas AT winischhofer DOT net          http://www.winischhofer.net/
twini AT xfree86 DOT org



diff -I.*$XFree86.*$ -I.*$Id.*$ -I.*$XConsortium.*$ -I.*$Xorg.*$ -U1 -r1.30 -r1.31
--- programs/Xserver/hw/xfree86/xaa/xaaPCache.c	25 Sep 2000 23:56:14 -0000	1.30
+++ programs/Xserver/hw/xfree86/xaa/xaaPCache.c	16 Aug 2003 01:11:40 -0000	1.31
@@ -765,2 +765,3 @@
 	3) Don't make more than MAX_512.
+	4) Don't have any of there are no 256x256s.
 
@@ -787,2 +788,9 @@
     if(Target256 < 4) Target256 = 0;
+
+    if(Num512 && Num256 < 4) {
+	while(Num512 && Num256 < Target256) {
+	   SubdivideList(&List512, &List256);
+	   Num256 += 4; Num512--;
+	}
+    }
 


----- End forwarded message -----

-- 
G. Branden Robinson                |    Somebody once asked me if I thought
Debian GNU/Linux                   |    sex was dirty.  I said, "It is if
branden@debian.org                 |    you're doing it right."
http://people.debian.org/~branden/ |    -- Woody Allen

Attachment: pgp_XvLAyKNz6.pgp
Description: PGP signature


Reply to: