WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] query on physical memory map for Xen?

To: "Peter Teoh" <htmldeveloper@xxxxxxxxx>
Subject: Re: [Xen-devel] query on physical memory map for Xen?
From: "pradeep singh rautela" <rautelap@xxxxxxxxx>
Date: Mon, 14 Apr 2008 11:21:52 +0530
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Sun, 13 Apr 2008 22:52:18 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=rotF2eN/LrsPN+j/Uh6H/u0UbQJB0bG9DGmgiUd8cwk=; b=CRs6vIp6WR8lVS8e1hwyQq2giIjNcnywpDudmJPCbzUw2cXXVhtz78YxTClwLwsCQWNLYNW17g9pUxn+61QArgpBsvP8MshSE4YFFp28rLBubBcR91xho+ile14ikPTbWwNep9DfygCO7/VIiB1B9llVnLRpSB00kSjWjrDFdc0=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=wzP6pZsmvAb3A+zA53QQCy5lJRdA2ZxHjsUEqwxYt45Em5Z5dijPjKeNnjfuoIeoopnJV3KwHiRZ8E0RRu2EPPJkPeoIPSVdueex9ZsdYHpxKR8K1ljR/8SO5/qP57dBwdF0WDf4PG/KdrZ4u98Jd+mQW9CdGiW5FTEdDNw2t+w=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <804dabb00804132243q1a436365ocb0d2860953527dc@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <6bc632150804102314g29c10bfay129b23a11d2877fe@xxxxxxxxxxxxxx> <C424C9A5.16331%keir.fraser@xxxxxxxxxxxxx> <804dabb00804132243q1a436365ocb0d2860953527dc@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Nada, this is definetly the wrong piece of code you are looking at.:-)
Let me check once again for you ...

Ahh...got something.

see xen/include/asm-x86/config.h

296 #ifdef CONFIG_X86_PAE
297 # define LINEARPT_MBYTES         8
298 # define MACHPHYS_MBYTES        16 /* 1 MB needed per 1 GB memory */
299 # define FRAMETABLE_MBYTES (MACHPHYS_MBYTES * 6)
300 #else
301 # define LINEARPT_MBYTES         4
302 # define MACHPHYS_MBYTES         4
303 # define FRAMETABLE_MBYTES      24

a 32 bit kernel/hypervisor cannot access more than 4GB of physical
memory.So if PAE is enabled while compiling the kernel/hypervisor you
get the first part of the above conditional macro.

for each GB you have 1MB of memory for a m2p table.isn't it?
16MB means 16GB of physical mem max you can address in 32 bit xen hypervisor.

Thanks,

On Mon, Apr 14, 2008 at 11:13 AM, Peter Teoh <htmldeveloper@xxxxxxxxx> wrote:
> Just curious, can anyone give a hint on where this 16GB max physical
>  memory is defined?
>
>  Doing some random search by strings I found these:
>
>  #define MAXMEM           0x3fffffffffffUL
>  #define MAXMEM                  
> (__FIXADDR_TOP-__PAGE_OFFSET-__VMALLOC_RESERVE)
>  #define MAXMEM_PFN      PFN_DOWN(MAXMEM)
>  #define ACPI_MEM_LIST_MAX               6
>  #define NR_NODE_MEMBLKS (MAX_NUMNODES*2)
>  #define EFI_MAX_MEMORY_TYPE             14
>  #define  PCI_X_CMD_MAX_READ     0x000c  /* Max Memory Read Byte Count */
>  #define  PCI_X_STATUS_MAX_READ  0x00600000      /* Designed Max Memory
>  Read Count */
>  #define GEO_TYPE_MAX            (GEO_TYPE_MEM+1)
>  #define NR_NODE_MEMBLKS (MAX_NUMNODES*2)
>     *max_mfn = xc_memory_op(xc_handle, XENMEM_maximum_ram_page, NULL);
>  #define EFI_MAX_MEMORY_TYPE             14
>  #define MAXMEM           0x3fffffffffffUL
>   * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return.
>  #define MAXMEM                  
> (__FIXADDR_TOP-__PAGE_OFFSET-__VMALLOC_RESERVE)
>  #define MAXMEM_PFN      PFN_DOWN(MAXMEM)
>   * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return.
>  #define ACPI_MEM_LIST_MAX               6
>  #define XENMEM_maximum_ram_page     2
>  #define XENMEM_maximum_reservation  4
>  #define XENMEM_maximum_gpfn         14
>  #define NR_NODE_MEMBLKS (MAX_NUMNODES*2)
>  #define EFI_MAX_MEMORY_TYPE             14
>  #define GEO_TYPE_MAX            (GEO_TYPE_MEM+1)
>  #define NR_NODE_MEMBLKS (MAX_NUMNODES*2)
>
>  Not sure which one maps to this 16GB thing?   Thanks for the sharing :-).
>
>
>
>  On Fri, Apr 11, 2008 at 2:54 PM, Keir Fraser <keir.fraser@xxxxxxxxxxxxx> 
> wrote:
>  > On 11/4/08 07:14, "pradeep singh rautela" <rautelap@xxxxxxxxx> wrote:
>  >
>  >  > Based on my understanding of the Xen code, I have a small query for you 
> all.
>  >  >
>  >  > Xen hypervisor can access only a max of 16GB of physical memory
>  >  > directly on x86 architecture.
>  >  > Is this correct inference?
>  >  >
>  >  > So does Xen hypervisor cannot touch memory about 16G directly? Does it
>  >  > employ some kind of temporary mapping like linux kernel to access
>  >  > memory above 16G then?
>  >
>  >  32-bit Xen does not use memory above 16GB at all. 64-bit Xen can use any
>  >  amount of memory, and is able to keep a permanent mapping of all of it.
>  >
>  >   -- Keir
>  >
>  >
>  >
>  >
>  >
>  >  _______________________________________________
>  >  Xen-devel mailing list
>  >  Xen-devel@xxxxxxxxxxxxxxxxxxx
>  >  http://lists.xensource.com/xen-devel
>  >
>
>
>
>  --
>  Regards,
>  Peter Teoh
>



-- 
Pradeep Singh Rautela
http://eagain.wordpress.com
http://emptydomain.googlepages.com

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>