5.1-RELEASE TODO
Terry Lambert
tlambert2 at mindspring.com
Wed May 14 09:01:29 PDT 2003
Terry Lambert wrote:
> John Baldwin wrote:
> > Umm, Terry, that's the whole point of PGE. You don't flush entries
> > from the TLB that are "global", i.e. shared among all processes and
> > don't change. "Duh". Basically your suggestion would be an
> > expensive hack equivalent to DISABLE_PG_G.
>
> No. My suggestion would be to not load something into a global
> page before some of the VM system mappings have been established.
>
> Basically, there is some machdep.c code that's out of order.
> Reordering it is hard, so I haven't done it yet.
>
> In other words, the problem is that someone is enabling PG in
> %CR0 way too early.
>
> Read the first sentence again: "...works around an order of
> operation problem...".
BTW: a "brute force" kludge to fix this problem is to clear PG
in %CR0, iterate over the already allocated pages with PG_G set
in them clearing it, reload %CR3, set PG in %CR0, iterate the
exact same pages again resetting PG_G, and reload %CR3, right at
the end of machdep.c. This will effectively "fix" the PG_G
related problems, since they appear to be related to pages in
the TLB cache with PG_G set without PG set in %CR0 first (it
works to fix the errors on the two machines where I've noted
PG_G related problems).
-- Terry
More information about the freebsd-current
mailing list