Messages in this thread | | | Subject | RE: [patch] fix ia64 hugetlb_free_pgd_range | Date | Thu, 23 Feb 2006 22:30:39 -0800 | From | "Chen, Kenneth W" <> |
| |
David Gibson wrote on Thursday, February 23, 2006 8:06 PM > But I don't see how not transforming them sometimes can be correct. > Suppose 'floor' is only a little way below 'addr' - addr will be > shifted down, but floor won't, so floor may now be above addr, which > will cause weird results. > > Afaict the *only* thing floor and ceiling are used for is bounds > checking the address range we're examining. How can that ever be > right if one address has been scaled down, but the other hasn't.
The scale down isn't exactly on every address bits. Top 3 bits of virtual address are preserved.
#define htlbpage_to_page(x) (((unsigned long) REGION_NUMBER(x) << 61) | (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT)))
So scaled address for a hugetlb address will never be below unscaled normal page address. That is adjusted addr will never below unchanged floor.
- Ken - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |