Thread (3 messages) 3 messages, 3 authors, 2012-10-11

Re: [PATCH 8/10] memory-hotplug : remove page table of x86_64 architecture

From: Andi Kleen <hidden>
Date: 2012-10-08 04:37:10
Also in: linux-acpi, linux-mm, linux-s390, linux-sh, linuxppc-dev, lkml

Possibly related (same subject, not in this thread)

Yasuaki Ishimatsu [off-list ref] writes:
+			}
+
+			/*
+			 * We use 2M page, but we need to remove part of them,
+			 * so split 2M page to 4K page.
+			 */
+			pte = alloc_low_page(&pte_phys);
What happens when the allocation fails?

alloc_low_page seems to be buggy there too, it would __pa a NULL 
pointer.
+		if (pud_large(*pud)) {
+			if ((addr & ~PUD_MASK) = 0 && next <= end) {
+				set_pud(pud, __pud(0));
+				pages++;
+				continue;
+			}
+
+			/*
+			 * We use 1G page, but we need to remove part of them,
+			 * so split 1G page to 2M page.
+			 */
+			pmd = alloc_low_page(&pmd_phys);
Same here
+			__split_large_page((pte_t *)pud, addr, (pte_t *)pmd);
+
+			spin_lock(&init_mm.page_table_lock);
+			pud_populate(&init_mm, pud, __va(pmd_phys));
+			spin_unlock(&init_mm.page_table_lock);
+		}
+
+		pmd = map_low_page(pmd_offset(pud, 0));
+		phys_pmd_remove(pmd, addr, end);
+		unmap_low_page(pmd);
+		__flush_tlb_all();
+	}
+	__flush_tlb_all();
This doesn't flush the other CPUs doesn't it?

-Andi

-- 
ak@linux.intel.com -- Speaking for myself only
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help