From owner-freebsd-current@FreeBSD.ORG Wed Jan 30 00:15:26 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D7D616A41A for ; Wed, 30 Jan 2008 00:15:26 +0000 (UTC) (envelope-from rmtodd@ichotolot.servalan.com) Received: from mx2.synetsystems.com (mx2.synetsystems.com [76.10.206.15]) by mx1.freebsd.org (Postfix) with ESMTP id E6DF813C457 for ; Wed, 30 Jan 2008 00:15:25 +0000 (UTC) (envelope-from rmtodd@ichotolot.servalan.com) Received: by mx2.synetsystems.com (Postfix, from userid 66) id DE7CB671; Tue, 29 Jan 2008 19:15:24 -0500 (EST) Received: from rmtodd by servalan.servalan.com with local (Exim 4.68 (FreeBSD)) (envelope-from ) id 1JK00R-000JUw-Vk; Tue, 29 Jan 2008 17:36:43 -0600 To: bruce@zuhause.mn.org References: <18328.45282.562906.708945@celery.zuhause.org> <18329.22270.123314.900543@bhfs.zuhause.org> <18332.52845.956601.870334@celery.zuhause.org> From: Richard Todd Date: Tue, 29 Jan 2008 17:36:43 -0600 In-Reply-To: <18332.52845.956601.870334@celery.zuhause.org> (bruce@zuhause.mn.org's message of "Sun, 27 Jan 2008 12:33:17 -0600") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) XEmacs/21.4.21 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: freebsd-current@freebsd.org Subject: Re: Weird performance behaviour in 7.0 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2008 00:15:26 -0000 bruce@zuhause.mn.org writes: > I'm curious, though, should I be worried about the memcontrol list > entries that are listed as "set-by-firmware active bogus"? > > 0x0/0xf080000000 BIOS write-back set-by-firmware active bogus > 0x80000000/0xf040000000 BIOS write-back set-by-firmware active bogus > 0xc0000000/0xf010000000 BIOS write-back set-by-firmware active bogus > 0xcf800000/0xf000800000 BIOS uncacheable set-by-firmware active bogus > 0xcf700000/0xf000100000 BIOS uncacheable set-by-firmware active bogus > 0x100000000/0xf020000000 BIOS write-back set-by-firmware active bogus > 0x120000000/0xf008000000 BIOS write-back set-by-firmware active bogus Worried that it says "bogus"? No, not really. This is, as I said earlier, the result of an issue in the amd64 machdep.c code for handling MTRRs -- it was written for the original amd64 where the "size" field of the MTRR was a certain width. On Core 2 Duo these fields are 4 bits shorter, so the machdep.c code looks at 4 more bits from that register than it should and so all the size fields have that leading "f" digit. This causes the sizes to no longer be a power of two, which causes machdep.c to set the "bogus" flag because those entries look funny. The "bogus" flag being set doesn't seem to actually break anything, and as near as I can figure if you change the memcontrol entries the correct data gets written back to the registers even on Core2Duo, so the "bogus" warnings seem to be pretty harmless.