In a newsletter from sytem internals there is a mention of W2K using 4MByte
pages. Here is wht it says: “If a computer has at least
128MB of physical memory Win2K uses 4MB “large pages” to map kernel
memory. Using 4MB instead of 4KB pages saves a level of page translation
and therefore improves performance.”
I’ve looked for more information regarding the usage of these large pages,
but I can’t find any more information. I hope someone can answer my
questions:
-
Is this use strictly for kernel usage. That is, is only the kernel and
other OS components loaded into this lare a memory space?
-
Is memory allocated using the normal 4Kyte pages as normal or does it
too use 4MB pages. This would seem quite wasteful, so I’m thinking it
doesn’t use the larger size.
-
Where is there any more useful info on this topic?
Thanks
Dan
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Currently, the 4 MB page is used only by the kernel. Their is no way for the
driver to allocate or use 4Mb pages.
regards
xxxxx@hotmail.com
-
Is memory allocated using the normal 4Kyte pages as normal or does it
too use 4MB pages. This would seem quite wasteful, so I’m thinking it
doesn’t use the larger size.
-
Where is there any more useful info on this topic?
From: xxxxx@giganet.com
Reply-To: “NT Developers Interest List”
>To: “NT Developers Interest List”
>Subject: [ntdev] NT use of 4Myte pages
>Date: Thu, 1 Feb 2001 17:39:50
>
>In a newsletter from sytem internals there is a mention of W2K using 4MByte
>pages. Here is wht it says: “If a computer has at least
>128MB of physical memory Win2K uses 4MB “large pages” to map kernel
>memory. Using 4MB instead of 4KB pages saves a level of page translation
>and therefore improves performance.”
>
>I’ve looked for more information regarding the usage of these large pages,
>but I can’t find any more information. I hope someone can answer my
>questions:
>
>1) Is this use strictly for kernel usage. That is, is only the kernel and
>other OS components loaded into this lare a memory space?
>
>2) Is memory allocated using the normal 4Kyte pages as normal or does it
>too use 4MB pages. This would seem quite wasteful, so I’m thinking it
>doesn’t use the larger size.
>
>3) Where is there any more useful info on this topic?
>
>Thanks
>Dan
>
>—
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
—
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
If you reserve memory outside NT at boot time, anything above what you let
NT use and up
to 512 Megabytes can by reachable without any MDL or any other trouble by
simply adding
0x80000000 to the physical address to obtain the virtual address. And it’s
guaranteed to
be real non-pageable physical memory that is contiguous by design. Not bad
for DMA!
George
At 01:22 AM 2/2/01 +0000, you wrote:
Currently, the 4 MB page is used only by the kernel. Their is no way for
the driver to allocate or use 4Mb pages.
regards
xxxxx@hotmail.com
>2) Is memory allocated using the normal 4Kyte pages as normal or does it
>too use 4MB pages. This would seem quite wasteful, so I’m thinking it
>doesn’t use the larger size.
>
>3) Where is there any more useful info on this topic?
>From: xxxxx@giganet.com
>Reply-To: “NT Developers Interest List”
>>To: “NT Developers Interest List”
>>Subject: [ntdev] NT use of 4Myte pages
>>Date: Thu, 1 Feb 2001 17:39:50
>>
>>In a newsletter from sytem internals there is a mention of W2K using 4MByte
>>pages. Here is wht it says: “If a computer has at least
>>128MB of physical memory Win2K uses 4MB “large pages” to map kernel
>>memory. Using 4MB instead of 4KB pages saves a level of page translation
>>and therefore improves performance.”
>>
>>I’ve looked for more information regarding the usage of these large pages,
>>but I can’t find any more information. I hope someone can answer my
>>questions:
>>
>>1) Is this use strictly for kernel usage. That is, is only the kernel and
>>other OS components loaded into this lare a memory space?
>>
>>2) Is memory allocated using the normal 4Kyte pages as normal or does it
>>too use 4MB pages. This would seem quite wasteful, so I’m thinking it
>>doesn’t use the larger size.
>>
>>3) Where is there any more useful info on this topic?
>>
>>Thanks
>>Dan
>>
>>—
>>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> _________________________________________________________________________
>Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@brd.com
>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
—
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> 1) Is this use strictly for kernel usage. That is, is only the kernel and
other OS components loaded into this lare a memory space?
Yes. Only the kernel, the boot driver images and the initial portion of the
nonpaged pool is there.
- Is memory allocated using the normal 4Kyte pages as normal or does it
too use 4MB pages. This would seem quite wasteful, so I’m thinking it
doesn’t use the larger size.
The usual memory allocation uses 4KB pages - 4MB pages are used to build the
0x80000000-0xa0000000 region and to map it to 0x0000000 physical.
(thus it can even describe all of your physical memory - this is done to
simplify MmGetSystemAddressForMdl() - for one-page MDL, just add 0x80000000
to the physical address).
This is done only at boot time and there is no way of altering this mapping
after it was created. The kernel, the boot drivers and the initial portion
of the nonpaged pool are at these virtual addresses.
Note: the 0x80000000 value is sometimes not so - 0xc0000000 is used for
stuff like /3GB boot option in the Advanced Server.
Max
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
One more quick question.
Is the mechanism used for this the 2MB page translation of PAE or the Page
Size Extensions (PSE) of the processor? It would seem to me that it is the
former (2MB page translation of PAE).
Dan
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Maxim S. Shatskih
Sent: Thursday, February 01, 2001 9:03 PM
To: NT Developers Interest List
Subject: [ntdev] Re: NT use of 4Myte pages
- Is this use strictly for kernel usage. That is, is only the kernel and
other OS components loaded into this lare a memory space?
Yes. Only the kernel, the boot driver images and the initial portion of the
nonpaged pool is there.
- Is memory allocated using the normal 4Kyte pages as normal or does it
too use 4MB pages. This would seem quite wasteful, so I’m thinking it
doesn’t use the larger size.
The usual memory allocation uses 4KB pages - 4MB pages are used to build the
0x80000000-0xa0000000 region and to map it to 0x0000000 physical.
(thus it can even describe all of your physical memory - this is done to
simplify MmGetSystemAddressForMdl() - for one-page MDL, just add 0x80000000
to the physical address).
This is done only at boot time and there is no way of altering this mapping
after it was created. The kernel, the boot drivers and the initial portion
of the nonpaged pool are at these virtual addresses.
Note: the 0x80000000 value is sometimes not so - 0xc0000000 is used for
stuff like /3GB boot option in the Advanced Server.
Max
You are currently subscribed to ntdev as: xxxxx@giganet.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> One more quick question.
Is the mechanism used for this the 2MB page translation of PAE or the Page
Size Extensions (PSE) of the processor? It would seem to me that it is the
former (2MB page translation of PAE).
PSE. 4MB pages are used by setting some bit in PDE, which makes it a PTE for
a 4MB page. IIRC this is called PSE.
This feature was used since P5 processors - while PAE - which allows you to
access up to 64GB physical RAM - started with P6 processors, and AFAIK not
all of them (Xeon only).
Max
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
According to the Intel documentation, PAE was introduced with the Pentium
Pro processor and PSE was introduced with the Pentium II Xeon processor.
Dan
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Maxim S. Shatskih
Sent: Saturday, February 10, 2001 3:28 AM
To: NT Developers Interest List
Subject: [ntdev] Re: NT use of 4Myte pages
One more quick question.
Is the mechanism used for this the 2MB page translation of PAE or the Page
Size Extensions (PSE) of the processor? It would seem to me that it is the
former (2MB page translation of PAE).
PSE. 4MB pages are used by setting some bit in PDE, which makes it a PTE for
a 4MB page. IIRC this is called PSE.
This feature was used since P5 processors - while PAE - which allows you to
access up to 64GB physical RAM - started with P6 processors, and AFAIK not
all of them (Xeon only).
Max
You are currently subscribed to ntdev as: xxxxx@giganet.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
That’s right but it’s only starting with Pentium II Xeon that the standard
Intel chipset (450NX) allowed to access more than 4 GB (Up to 64 GB
actually).
Pierre
On 02/12/01, ““Dan Sullivan” ” wrote:
> According to the Intel documentation, PAE was introduced with the Pentium
> Pro processor and PSE was introduced with the Pentium II Xeon processor.
>
> Dan
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Maxim S. Shatskih
> Sent: Saturday, February 10, 2001 3:28 AM
> To: NT Developers Interest List
> Subject: [ntdev] Re: NT use of 4Myte pages
>
>
> > One more quick question.
> >
> > Is the mechanism used for this the 2MB page translation of PAE or the Page
> > Size Extensions (PSE) of the processor? It would seem to me that it is the
> > former (2MB page translation of PAE).
>
> PSE. 4MB pages are used by setting some bit in PDE, which makes it a PTE for
> a 4MB page. IIRC this is called PSE.
> This feature was used since P5 processors - while PAE - which allows you to
> access up to 64GB physical RAM - started with P6 processors, and AFAIK not
> all of them (Xeon only).
>
> Max
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@giganet.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
> —
> You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
—
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com