<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:΢ÈíÑźÚ
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
<BR>> Suppose your machine has 1 GB of RAM with a physical addresses of<BR>> 0x40000000 thru 0x7FFFFFFF<BR>> <BR>> Let's suppose that PHYS_OFFSET = 0xC0000000<BR>> Let's suppose that VMALLOC_START is set to 0xE0000000 and VMALLOC_END<BR>> is at 0xEFFFFFFF (256 Mb)<BR>> <BR>
is this PAGE_OFFSET or PHYS_OFFSET?<BR>
<BR>> So what we have is that memory from 0xC0000000 thru 0xDFFFFFFF (512<BR>> Mb) is kernel direct mapped memory and maps to physical addresses<BR>> 0x40000000 thru 0x5FFFFFFF<BR>> <BR>> Physical memory from 0x60000000 thru 0x7FFFFFFF (512Mb) is considered<BR>> high-mem. For the most part this is only usable by user-space. From<BR>> kernel space, you need to use the kmap/kunmap functions to even access<BR>> the memory.<BR>> <BR>
i don't think high-memory is only used by user-space.<BR>
vmalloc() funciton will try to allocate physical memory from high_memory first, if there is no high_memory, then allocate from normal region.<BR>
<BR>
<BR>
> However, if you call vmalloc and lets suppose that vmalloc just<BR>> happens to return 0xE0000000. The physical address of the first page<BR>> might be 0xD2345000.<BR>> <BR>
suppose vmalloc() return 0xE0000000, which is the VMALLOC_START, then the physical memory address<BR>
should be 0x60000000 thru 0x7FFFFFFF in your example.<BR>
<BR>> What's important is that the physical pages which back up the vmalloc<BR>> area all come from the kernel direct mapped area. They won't ever be<BR>> backed by pages from high-memory. So the physical addresses will all<BR>> be in the range 0x40000000 thru 0x5FFFFFFF.<BR>> <BR>
what do you mean "back up", maybe i have some misunderstanding.<BR>
in my opnion, vmalloc area should map to physical address 0x60000000 thru 0x7FFFFFFF first, <BR>
if this resion is exhausted, then normal area will be allocated.<BR>
<BR> <BR>                                            </div></body>
</html>