[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v3][PATCH 08/16] hvmloader/e820: construct guest e820 table
> From: Chen, Tiejun > Sent: Friday, June 12, 2015 4:19 PM > > > >> + * > >> + * #3. High memory region if it exists > >> + */ > >> + for ( i = 0; i < memory_map.nr_map; i++ ) > >> { > >> - e820[nr].addr = ((uint64_t)1 << 32); > >> - e820[nr].size = > >> - ((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT) - > e820[nr].addr; > >> - e820[nr].type = E820_RAM; > >> + e820[nr] = memory_map.map[i]; > >> nr++; > >> } > >> > >> + /* Low RAM goes here. Reserve space for special pages. */ > >> + BUG_ON(low_mem_pgend < (2u << 20)); > >> + /* > >> + * We may need to adjust real lowmem end since we may > >> + * populate RAM to get enough MMIO previously. > >> + */ > >> + for ( i = 0; i < memory_map.nr_map; i++ ) > > > > since you already translate memory map into e820 earlier, here > > you should use 'nr' instead of memory_map.nr_map. > > > > As we're saying in the code comment above, we're just handling the > lowmem entry, so I think memory_map.nr_map is enough. > OK > >> + { > >> + uint64_t end = e820[i].addr + e820[i].size; > >> + if ( e820[i].type == E820_RAM && > >> + low_mem_pgend > e820[i].addr && low_mem_pgend < end ) > >> + e820[i].size = low_mem_pgend - e820[i].addr; > >> + } > > > > Sorry I may miss the code but could you elaborate where the > > low_mem_pgend is changed after memory map is created? If > > it happens within hvmloader, suppose the amount of reduced > > memory from original E820_RAM entry should be added to > > another E820_RAM entry for highmem, right? > > You're right so I really should compensate this in highmem entry, > > add_high_mem = end - low_mem_end; > > /* > * And then we also need to adjust highmem. > */ > if ( add_high_mem ) > { > for ( i = 0; i < memory_map.nr_map; i++ ) > { > if ( e820[i].type == E820_RAM && > e820[i].addr > (1ull << 32)) > e820[i].size += add_high_mem; > } > } > > Need to see more code in next version. Thanks Kevin _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |