Weird performance behaviour in 7.0
jhb at freebsd.org
Wed Jan 30 06:22:59 PST 2008
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.
Ahh, I will look at fixing this.
More information about the freebsd-current