Skip to contentSkip to conversation

MAX_ADDRESS.

parisc-linux Naresh 3 participants 4 messages Sep 30, 2003

lore
Share & tools
lore

Naresh

author
#0 lore raw

Hi,
This question is relevant to the 2.4 kernel. Is MAX_ADDRESS really the highest virtual address mapped by the kernel? I can see this comment in 'paging_init()' in the section for DISCONTIGMEM. However, pagetable_init() doesnt make a check before it calls 'map_pages( )' for all the ranges of memory. So we may DISCONTIGMEM turned off but it may so happen that we have a 'pmem_ranges[]' entry that is greater than MAX_ADDRESS which may find its way into the kernel page tables. Regards,
Naresh.

#1 lore raw
Quoted 7 lines · Naresh

This question is relevant to the 2.4 kernel. Is MAX_ADDRESS really the highest virtual address mapped by the kernel? I can see this comment in 'paging_init()' in the section for DISCONTIGMEM. However, pagetable_init() doesnt make a check before it calls 'map_pages( )' for all the ranges of memory. So we may DISCONTIGMEM turned off but it may so happen that we have a 'pmem_ranges[]' entry that is greater than MAX_ADDRESS which may find its way into the kernel page tables.

Ignore the DISCONTIGMEM code. It's completely broken (and we offer no way to turn CONFIG_DISCONTIGMEM on).

I'm not sure what half of this code is for; you'd need to ask John Marvin who wrote it.

Signature · 3 lines
"It's not Hollywood.  War is real, war is primarily not about defeat or
victory, it is about death.  I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
author
#2 lore raw

MAX_ADDRESS has nothing to do with DISCONTIGMEM. Its definition is generic( pgtable.h), although it is not used anywhere. I just happened to see the comment in the DISCONTIGMEM code. Even if DISCONTIGMEM is turned off, there is no check for MAX_ADDRESS before the call to 'map_pages()' in 'pagetable_init( )', which is why I would like to know if MAX_ADDRESS can be ignored.

Regards,
Naresh.

Quoted 23 lines · Matthew Wilcox
Quoted 7 lines · Naresh

This question is relevant to the 2.4 kernel. Is MAX_ADDRESS really the highest virtual address mapped by the kernel? I can see this comment in 'paging_init()' in the section for DISCONTIGMEM. However, pagetable_init() doesnt make a check before it calls 'map_pages( )' for all the ranges of memory. So we may DISCONTIGMEM turned off but it may so happen that we have a 'pmem_ranges[]' entry that is greater than MAX_ADDRESS which may find its way into the kernel page tables.

Ignore the DISCONTIGMEM code. It's completely broken (and we offer no way to turn CONFIG_DISCONTIGMEM on).

I'm not sure what half of this code is for; you'd need to ask John Marvin who wrote it.

--
"It's not Hollywood. War is real, war is primarily not about defeat or victory, it is about death. I've seen thousands and thousands of dead bodies. Do you think I want to have an academic debate on this subject?" -- Robert Fisk
_______________________________________________
parisc-linux mailing list
[email protected]
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

#3 lore raw
Quoted 5 lines · Naresh

MAX_ADDRESS has nothing to do with DISCONTIGMEM. Its definition is generic( pgtable.h), although it is not used anywhere. I just happened to see the comment in the DISCONTIGMEM code. Even if DISCONTIGMEM is turned off, there is no check for MAX_ADDRESS before the call to 'map_pages()' in 'pagetable_init( )', which is why I would like to know if MAX_ADDRESS can be ignored.

No. It does represent the highest virtual address possible.

Linux has 3 levels of page tables, so on a 64 bit kernel (8 bytes per pte and 8 bytes per pte page pointer etc), we can address a maximum of 512GB with 4k pages.

James