All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	William Lee Irwin III <wli@holomorphy.com>,
	Andi Kleen <ak@suse.de>, Ingo Molnar <mingo@elte.hu>,
	Thomas Gleixner <tglx@linutronix.de>,
	Nick Piggin <nickpiggin@yahoo.com.au>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Why preallocate pmd in x86 32-bit PAE?
Date: Fri, 16 Nov 2007 09:45:51 -0800	[thread overview]
Message-ID: <473DD74F.60800@zytor.com> (raw)
In-Reply-To: <473DCF73.4070401@goop.org>

Jeremy Fitzhardinge wrote:
> 
> Hm, do you recall what processors that might affect?  As far as I know,
> current processors will ignore non-present top-level entries.  Anyway,
> we can point them not present to empty_zero_page, so testing the present
> bit will still be sufficient to tell if we need to allocate a new pmd,
> but if the hardware decides to follow the page reference there's no harm
> done.  (Hm, unless the hardware decides it wants to set A or D bits in
> empty_zero_page for some reason...)
> 

PDPTR is documented to have P bits but none of the other control bits, 
unlike other levels of the hierarchy.

The hardware never sets A or D bits on non-present pages, since all the 
bits except P are reserved for the operating systems (and, besides, they 
can never be accessed or dirty.)

>> What earlier CPU's did was to basically load all four values into the CPU 
>> when you loaded %cr3. There was no "three-level page table walker" at all: 
>> it was still a two-level page table walker, there were just for magic 
>> internal page tables that were indexed off the two high bits.
> 
> That just means we need to reload cr3 after populating the pgd with a
> new pmd, right?

Yes.  And as Linus said, it would be a new special case.

	-hpa


      parent reply	other threads:[~2007-11-16 17:48 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-15 21:57 Why preallocate pmd in x86 32-bit PAE? Jeremy Fitzhardinge
2007-11-15 22:12 ` Linus Torvalds
2007-11-15 22:42   ` H. Peter Anvin
2007-11-16  0:40     ` William Lee Irwin III
2007-11-16  0:41       ` H. Peter Anvin
2007-11-16 11:16         ` Andi Kleen
2007-11-16 15:45           ` H. Peter Anvin
2007-11-16 15:53             ` Andi Kleen
2007-11-16 16:10               ` H. Peter Anvin
2007-11-16 17:12   ` Jeremy Fitzhardinge
2007-11-16 17:35     ` Linus Torvalds
2007-11-16 18:30       ` Jeremy Fitzhardinge
2007-11-16 19:14       ` Jeremy Fitzhardinge
2007-11-16 19:22         ` Linus Torvalds
2007-11-16 19:43           ` Jeremy Fitzhardinge
2007-11-16 17:45     ` H. Peter Anvin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=473DD74F.60800@zytor.com \
    --to=hpa@zytor.com \
    --cc=ak@suse.de \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=nickpiggin@yahoo.com.au \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=wli@holomorphy.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.