Re: [PATCH] mm: remove unnecessary condition in remove_inode_hugepages

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

 



On 2016/9/27 4:16, Mike Kravetz wrote:
> On 09/26/2016 02:01 AM, Michal Hocko wrote:
>> On Mon 26-09-16 10:34:13, zhongjiang wrote:
>>> From: zhong jiang <zhongjiang@xxxxxxxxxx>
>>>
>>> when the huge page is added to the page cahce (huge_add_to_page_cache),
>>> the page private flag will be cleared. since this code
>>> (remove_inode_hugepages) will only be called for pages in the
>>> page cahce, PagePrivate(page) will always be false.
>>>
>>> The patch remove the code without any functional change.
>>>
>>> Signed-off-by: zhong jiang <zhongjiang@xxxxxxxxxx>
>>> ---
>>>  fs/hugetlbfs/inode.c    | 10 ++++------
>>>  include/linux/hugetlb.h |  2 +-
>>>  mm/hugetlb.c            |  4 ++--
>>>  3 files changed, 7 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
>>> index 4ea71eb..81f8bbf4 100644
>>> --- a/fs/hugetlbfs/inode.c
>>> +++ b/fs/hugetlbfs/inode.c
>>> @@ -458,18 +458,16 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart,
>>>  			 * cache (remove_huge_page) BEFORE removing the
>>>  			 * region/reserve map (hugetlb_unreserve_pages).  In
>>>  			 * rare out of memory conditions, removal of the
>>> -			 * region/reserve map could fail.  Before free'ing
>>> -			 * the page, note PagePrivate which is used in case
>>> -			 * of error.
>>> +			 * region/reserve map could fail. Correspondingly,
>>> +			 * the subpool and global reserve usage count can need
>>> +			 * to be adjusted.
>>>  			 */
>>> -			rsv_on_error = !PagePrivate(page);
>> This whole code is tricky as hell. I would be calmer if we just stick a
>> VM_BUG_ON here to make sure that this assumption will not break later
>> on.
> I'm OK with adding the VM_BUG_ON.
>
> This has run through the fallocate stress testing without issue.  In
> addition, I ran it through the (in development) userfaultfd huge page
> tests that use fallocate hole punch on a privately mapped hugetlbfs
> file.
  Thank you for test and review.
> The original check for PagePrivate was likely added due to observations
> about the way the flag is used in dequeue_huge_page_vma/free_huge_page.
> Unfortunately, I did not recognize that they did not apply in this case.
>


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]