From owner-freebsd-current Fri Apr 19 13:35:05 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id NAA00228 for current-outgoing; Fri, 19 Apr 1996 13:35:05 -0700 (PDT) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id NAA00212 for ; Fri, 19 Apr 1996 13:34:51 -0700 (PDT) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id NAA08890; Fri, 19 Apr 1996 13:30:31 -0700 From: Terry Lambert Message-Id: <199604192030.NAA08890@phaeton.artisoft.com> Subject: Re: gzipped executables To: nate@sri.MT.net (Nate Williams) Date: Fri, 19 Apr 1996 13:30:31 -0700 (MST) Cc: terry@lambert.org, kuku@gilberto.physik.rwth-aachen.de, freebsd-current@freefall.freebsd.org In-Reply-To: <199604192012.OAA04133@rocky.sri.MT.net> from "Nate Williams" at Apr 19, 96 02:12:51 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > > > Is anyone working on fixing the broken gzip executable feature in > > > -current? > > > > It's a cache interaction. Pentium caches are written back inside > > the cache queue depth, whereas pre-Pentium processors have > > immutable cache queues. > > > > It can be fixed by incorporating 32 NOP's (until the next processor > > revision, anyway), in part of the code. > > If this is the case, why did it used to work on Pentium processors? Because it's circumstantial based on where the code is loaded -- and now it's loaded at a new place and you see the problem -- an optimized loop is wholly in cache. I'm suprised, given the size of the cache, that it worked at all on Pentium boxes, ever. In either case, I was able to kludge a fix locally. A real fix wants to alternate the compress-from/compress-to areas to intentionally force LRU activity. As in inverting the compressed image, or inverting the page ordering between decompress and execute. Alternately, throwing 32 NOP's before jumping will work with current cache queue depths. Didn't we discuss all this in detail before? Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.