contiguous pages

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
dc0d32

contiguous pages

Post by dc0d32 »

can someone please list out all the situations when the allocated pages must be contiguous in physical address space [apart from that ISA DMA thing] ?

one more thing, what are the situations when shared pages are inevitable? is there any way around dealing them, apart from the page table entries of 2 tasks pointing to same physical page?
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:contiguous pages

Post by Candy »

prashant wrote: can someone please list out all the situations when the allocated pages must be contiguous in physical address space [apart from that ISA DMA thing] ?

one more thing, what are the situations when shared pages are inevitable? is there any way around dealing them, apart from the page table entries of 2 tasks pointing to same physical page?
Shared pages are almost never inevitable. You COULD always duplicate them, giving no problem.

However, it's usually easier to map certain things (kernel being one of the probable parts) as shared. You could use PAE and make one or more PDPT entry point to just the kernel PDP, you could use a number of page tables just for the kernel and map those page tables (and thereby implicitly the kernel) into the other segments... Look a little through the forum for other techniques, they've been mentioned a few times.

All memory bus addresses that are seen by hardware that do not use the x86 MMU have to have contiguous physical memory, or more accurately, contiguous physical address space. That's a never-ending list, but this is the determining aspect. If and only if something doesn't convert it itself, you have to do it for him.

Feeling: PCI devices, AGP devices, ISA devices etc.
Post Reply