[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] reboot after "scrubbing free ram"



Thanks the useful info.
Could you please try the appended patch (just to rule out a similar
issue we found recently)?


diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 947f42a..66637bd 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -283,6 +283,8 @@ unsigned long __init_refok init_memory_mapping(unsigned 
long start,
        if (!after_bootmem && !start) {
                pud_t *pud;
                pmd_t *pmd;
+               unsigned long addr;
+               u64 size, memblock_addr;
 
                mmu_cr4_features = read_cr4();
 
@@ -291,11 +293,18 @@ unsigned long __init_refok init_memory_mapping(unsigned 
long start,
                 * located on different 2M pages. cleanup_highmap(), however,
                 * can only consider _end when it runs, so destroy any
                 * mappings beyond _brk_end here.
+                * Respect memblock reserved regions.
                 */
                pud = pud_offset(pgd_offset_k(_brk_end), _brk_end);
                pmd = pmd_offset(pud, _brk_end - 1);
-               while (++pmd <= pmd_offset(pud, (unsigned long)_end - 1))
-                       pmd_clear(pmd);
+               addr = (_brk_end + PMD_SIZE - 1) & PMD_MASK;
+               while (++pmd <= pmd_offset(pud, (unsigned long)_end - 1)) {
+                       memblock_addr = 
memblock_x86_find_in_range_size(__pa(addr),
+                                       &size, PMD_SIZE);
+                       if (memblock_addr == (u64) __pa(addr) && size >= 
PMD_SIZE)
+                               pmd_clear(pmd);
+                       addr += PMD_SIZE;
+               }
        }
 #endif
        __flush_tlb_all();


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.