[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Xenheap issue on 32b
Hi Keir, I noticed that you added the code #if defined(CONFIG_X86_32) /* Initialise the Xen heap. */ for ( nr_pages = i = 0; i < boot_e820.nr_map; i++ ) { uint64_t s = boot_e820.map[i].addr; uint64_t e = s + boot_e820.map[i].size; s = max_t(uint64_t, s, xenheap_initial_phys_start); e = min_t(uint64_t, e, xenheap_phys_end); if ( (boot_e820.map[i].type != E820_RAM) || (s >= e) ) continue; init_xenheap_pages(s, e); nr_pages += (e - s) >> PAGE_SHIFT; } printk("Xen heap: %luMB (%lukB)\n", nr_pages >> (20 - PAGE_SHIFT), nr_pages << (PAGE_SHIFT - 10)); #endif in start_xen() in xen/arch/x86/setup.c, And for init_xenheap_pages(), you implemented as void init_xenheap_pages(paddr_t ps, paddr_t pe) { ps = round_pgup(ps); pe = round_pgdown(pe); if ( pe <= ps ) return; memguard_guard_range(maddr_to_virt(ps), pe - ps); /* * Yuk! Ensure there is a one-page buffer between Xen and Dom zones, to * prevent merging of power-of-two blocks across the zone boundary. */ if ( ps && !is_xen_heap_mfn(paddr_to_pfn(ps)-1) ) ps += PAGE_SIZE; if ( !is_xen_heap_mfn(paddr_to_pfn(pe)) ) pe -= PAGE_SIZE; init_heap_pages(maddr_to_page(ps), (pe - ps) >> PAGE_SHIFT); } Here, I noticed that you destroyed the mapping of xenheap in that function and you commented: /* * Yuk! Ensure there is a one-page buffer between Xen and Dom zones, to * prevent merging of power-of-two blocks across the zone boundary. */ I am not aware of the purpose. But for S3, Intel Trusted Execution Technology (TXT) will MAC the used xenheap. On my system, Xenheap is up to C00000, but for the page 0xbff000, it is not mapped. Also, it is marked as "used" tested by is_page_in_use(). OK, now the page 0xbff000 is xenheap according to is_xen_heap_page(), and it is used according to is_page_in_use(), but it is not mapped. The issue happens. Comment? Thanks. Shane Here is my print. (XEN) memguard: 2e6000 - 800000 (XEN) init_heap_pages: 2e6000 - 800000 (XEN) memguard: 87f000 - c00000 (XEN) init_heap_pages: 87f000 - bff000 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |