Weird performance behaviour in 7.0

John Baldwin 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.

-- 
John Baldwin


More information about the freebsd-current mailing list