Messages in this thread | | | From | "Chen, Kenneth W" <> | Subject | RE: [PATCH] hugetlb_no_page might break hugetlb quota | Date | Mon, 6 Mar 2006 00:15:33 -0800 |
| |
Zhang, Yanmin wrote on Sunday, March 05, 2006 10:22 PM > In function hugetlb_no_page, backout path always calls hugetlb_put_quota. > It's incorrect when find_lock_page gets the page or the new page is added > into page cache.
While I acknowledge the bug, this patch is not complete. It makes file system quota consistent with respect to page cache state. But such quota (more severely, the page cache state) is still buggy, for example under ftruncate case: if one ftrucate hugetlb file and then tries to fault a page outside ftruncate area, a new hugetlb page is allocated and then added into page cache along with file system quota; and at the end returning VM_FAULT_SIGBUS. In this case, kernel traps an unreachable page until possibly next mmap that extends it. That need to be fixed. Which means we will be adding back conditional call to hugetlb_put_quota(mapping) in the backout path.
> In addition, if the vma->vm_flags doesn't include VM_SHARED, the quota > shouldn't be decreased.
Why? Private hugetlb page should be charged against the quota. Or is there a better reason not to do so?
- 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/
| |