20 messages in com.xensource.lists.xen-ia64-develRe: [Xen-ia64-devel] [PATCH 14/14] me...
FromSent OnAttachments
Isaku Yamahata17 May 2007 03:43.patch
Alex Williamson22 May 2007 18:32 
Isaku Yamahata23 May 2007 05:14.patch
Isaku Yamahata25 May 2007 02:56 
Alex Williamson25 May 2007 09:33 
Isaku Yamahata27 May 2007 19:59.patch
Alex Williamson29 May 2007 15:45.txt, .txt
Isaku Yamahata30 May 2007 02:41.patch, .patch, .patch
Alex Williamson30 May 2007 16:26.txt
Isaku Yamahata30 May 2007 18:50 
Alex Williamson30 May 2007 19:20 
Alex Williamson01 Jun 2007 13:42 
Isaku Yamahata01 Jun 2007 17:43.patch
Alex Williamson04 Jun 2007 14:37 
Jes Sorensen06 Jun 2007 00:54 
Isaku Yamahata06 Jun 2007 01:37 
Isaku Yamahata06 Jun 2007 01:46 
Jes Sorensen06 Jun 2007 08:10 
Isaku Yamahata05 Jul 2007 20:42.patch
Alex Williamson09 Jul 2007 11:15 
Subject:Re: [Xen-ia64-devel] [PATCH 14/14] memmap: allow huge size efi memory map of real machine
From:Isaku Yamahata (yama@valinux.co.jp)
Date:06/06/2007 01:37:08 AM
List:com.xensource.lists.xen-ia64-devel

On Wed, Jun 06, 2007 at 03:54:40AM -0400, Jes Sorensen wrote:

"Isaku" == Isaku Yamahata <yama@valinux.co.jp> writes:

Isaku> On Tue, May 22, 2007 at 07:32:28PM -0600, Alex Williamson Isaku> wrote:

In this case NUM_MEM_DESCS should be very small since it's only adding the descriptors we add for xen and the rest is dynamically sized based on the number of entries in the MDT provided by firmware. Thanks,

Isaku> I'll postpone reducing NUM_MEM_DESCS until memory corruption Isaku> fix.

Hi Isaku,

Hi Jes.

Just catching up on old mail - I'm not really happy with this part from the current tree:

#define NUM_MEM_DESCS 64 //large enough

Is that what you are trying to reduce? Sorry I'm a bit behind on my email. Basically for dom0 thats a problem since on larger multi-node systems we easily have far more and we need at least one per node.

Before the patch, it is statically allocated as NUM_MEM_DESCS-sized array. With the patch, the array is dynamically allocated. So NUM_MEM_DESCS isn't necessary to be so large. It can be reduced safely.

Probably you may want to check c/s 15155:c0cdcebc0377 of xen-ia64-unstable.hg. I cite the essential part of it. Notice efi_memmap member.

+ fw_tables_size = sizeof(*fw_tables) + + (ia64_boot_param->efi_memmap_size / + ia64_boot_param->efi_memdesc_size + NUM_MEM_DESCS) * + sizeof(fw_tables->efi_memmap[0]); ... + fw_tables = + (struct fw_tables *)_xmalloc(fw_tables_size, + __alignof__(*fw_tables)); ... diff -r b46c2ff6dfb0 -r c0cdcebc0377 xen/include/asm-ia64/dom_fw_common.h --- a/xen/include/asm-ia64/dom_fw_common.h Thu May 31 14:47:08 2007 -0600 +++ b/xen/include/asm-ia64/dom_fw_common.h Mon Jun 04 13:57:08 2007 -0600 @@ -64,16 +64,26 @@ struct fw_tables { /* End of SAL descriptors. Do not forget to update checkum bound. */

fpswa_interface_t fpswa_inf; - efi_memory_desc_t efi_memmap[NUM_MEM_DESCS]; unsigned long func_ptrs[2*NFUNCPTRS]; struct xen_sal_data sal_data; unsigned char fw_vendor[sizeof(FW_VENDOR)]; + + /* + * These four member for domain builder internal use at virtualized + * efi memmap creation. They should be zero-cleared after use. + */ + unsigned long fw_tables_size; + unsigned long fw_end_paddr; + unsigned long fw_tables_end_paddr; + unsigned long num_mds; + + efi_memory_desc_t efi_memmap[0]; }; #define FW_FIELD_MPA(field) \ FW_TABLES_BASE_PADDR + offsetof(struct fw_tables, field)