Re: [Query] mm: !*pte hit in mm/memory.c:remap_pte_range

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

 



On Thu, Jan 20, 2011 at 03:06:30PM -0600, Aguirre, Sergio wrote:
> And while debugging further, i realized that the point of stall was
> in mm/memory.c, function:
> 
> static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
> 			unsigned long addr, unsigned long end,
> 			unsigned long pfn, pgprot_t prot)
> {
> 	pte_t *pte;
> 	spinlock_t *ptl;
> 
> 	pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
> 	if (!pte)
> 		return -ENOMEM;
> 	arch_enter_lazy_mmu_mode();
> 	do {
> 
> 
> 		BUG_ON(!pte_none(*pte)); <---******* HERE
> 
> 
> 		set_pte_at(mm, addr, pte, pte_mkspecial(pfn_pte(pfn, prot)));
> 		pfn++;
> 	} while (pte++, addr += PAGE_SIZE, addr != end);
> 	arch_leave_lazy_mmu_mode();
> 	pte_unmap_unlock(pte - 1, ptl);
> 	return 0;
> }
> 
> This is in 2.6.35.6 kernel + TI Android kernel changes. [1]
> 
> How should i interpret this? Does this mean something specific?

It is asserting that the pte we are about to overwrite was empty.  In
other words, there is no existing mapping in place at that virtual
address.

If there was a pre-existing mapping, you're doing something wrong
because you're potentially overwriting something else.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux