[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] [PATCH 14/14] memmap: allow huge size efi memory map of real machine
On Wed, Jun 06, 2007 at 03:54:40AM -0400, Jes Sorensen wrote: > >>>>> "Isaku" == Isaku Yamahata <yamahata@xxxxxxxxxxxxx> 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) -- yamahata _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |