Date: Wed, 14 May 2003 10:25:37 -0400 (EDT) From: John Baldwin <jhb@FreeBSD.org> To: Terry Lambert <tlambert2@mindspring.com> Cc: Heiko Schaefer <hschaefer@fto.de> Subject: Re: 5.1-RELEASE TODO Message-ID: <XFMail.20030514102537.jhb@FreeBSD.org> In-Reply-To: <3EC1CBC8.E263A9EF@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 14-May-2003 Terry Lambert wrote: > The DISABLE_PG_G, as I said in a previous posting, works around > an order of operation problem that needs to clear PG in %CR0 > while it does it's thing, after which there's no problem with > enabling it. See "IA-32 Intel Architecture Software Developer's > Manual, Volume 3: System Programming Guide for more details on > PG_G, the PG bit in %CR0, and the effect on TLB flushing; look > specifically at Section 10.9 of "Memory Cache Control", which is > entitled "Invalidating The TRanslation Lookaside Buffers". > > Specifically, writing %CR3 doesn't invalidate pages with PG_G > set on them if PG is set in %CR0. 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. -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20030514102537.jhb>