[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Supporting systems with large E820 maps
>>> On 20.03.17 at 20:03, <alex.thorlton@xxxxxxx> wrote: > --- xen.orig/arch/x86/e820.c > +++ xen/arch/x86/e820.c > @@ -134,7 +134,7 @@ static struct change_member *change_poin > static struct e820entry *overlap_list[E820MAX] __initdata; > static struct e820entry new_bios[E820MAX] __initdata; > > -static int __init sanitize_e820_map(struct e820entry * biosmap, char * > pnr_map) > +static int __init sanitize_e820_map(struct e820entry * biosmap, unsigned int > * pnr_map) > { > struct change_member *change_tmp; > unsigned long current_type, last_type; > @@ -509,13 +509,13 @@ static void __init reserve_dmi_region(vo > } > } > > -static void __init machine_specific_memory_setup(struct e820entry *raw, char > *raw_nr) > +static void __init machine_specific_memory_setup(struct e820entry *raw, > unsigned int *raw_nr) I'm confused: staging has static void __init machine_specific_memory_setup( struct e820entry *raw, unsigned int *raw_nr) { > { > unsigned long mpt_limit, ro_mpt_limit; > uint64_t top_of_ram, size; > int i; > > - char nr = (char)*raw_nr; > + unsigned int nr = (unsigned int)*raw_nr; > sanitize_e820_map(raw, &nr); > *raw_nr = nr; > (void)copy_e820_map(raw, nr); > --->8 > > I didn't need to go all the way up to unsigned int here, but I did this > as a quick/dirty test to see if it got things working. I think this type change could be submitted right away (properly cleaned up for style). After all when plain char is a signed type (which it is allowed to be) it won't cope with 128 entries. > These small changes get our large machine to boot up and recognize all > 32TB of available RAM. I know that these changes are probably not what > we'll want to go with in the end, but I wanted to get them sent upstream > to get a dialogue started. > > So, what do others think here? How do we want to handle a large E820 > map? Boris mentioned to me that we might want to attempt to do a > dynamic allocation scheme, where we reserve more space for the memory > map when we detect that E820 is large. Since Jürgen says he already has something ready, I think there's not much else to say. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |