Re: Weird performance behaviour in 7.0

From: John Baldwin <jhb_at_freebsd.org>
Date: Thu, 13 Mar 2008 08:13:08 -0400
On Tuesday 29 January 2008 06:36:43 pm Richard Todd wrote:
> bruce_at_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.

This should be fixed now in HEAD.

-- 
John Baldwin
Received on Thu Mar 13 2008 - 11:18:01 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:28 UTC