* [PATCH v2] hugetlbfs: remove meaningless variable avoid_reserve
@ 2021-01-20 7:15 Miaohe Lin
2021-01-21 19:02 ` Mike Kravetz
0 siblings, 1 reply; 2+ messages in thread
From: Miaohe Lin @ 2021-01-20 7:15 UTC (permalink / raw)
To: akpm, mike.kravetz; +Cc: linux-mm, linux-kernel, linmiaohe
The variable avoid_reserve is meaningless because we never changed its
value and just passed it to alloc_huge_page(). So remove it to make code
more clear that in hugetlbfs_fallocate, we never avoid reserve when alloc
hugepage yet. Also add a comment offered by Mike Kravetz to explain this.
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
---
fs/hugetlbfs/inode.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 4bbfd78a7ccb..14df2f73b8ef 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -680,7 +680,6 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset,
*/
struct page *page;
unsigned long addr;
- int avoid_reserve = 0;
cond_resched();
@@ -716,8 +715,15 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset,
continue;
}
- /* Allocate page and add to page cache */
- page = alloc_huge_page(&pseudo_vma, addr, avoid_reserve);
+ /*
+ * Allocate page without setting the avoid_reserve argument.
+ * There certainly are no reserves associated with the
+ * pseudo_vma. However, there could be shared mappings with
+ * reserves for the file at the inode level. If we fallocate
+ * pages in these areas, we need to consume the reserves
+ * to keep reservation accounting consistent.
+ */
+ page = alloc_huge_page(&pseudo_vma, addr, 0);
hugetlb_drop_vma_policy(&pseudo_vma);
if (IS_ERR(page)) {
mutex_unlock(&hugetlb_fault_mutex_table[hash]);
--
2.19.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] hugetlbfs: remove meaningless variable avoid_reserve
2021-01-20 7:15 [PATCH v2] hugetlbfs: remove meaningless variable avoid_reserve Miaohe Lin
@ 2021-01-21 19:02 ` Mike Kravetz
0 siblings, 0 replies; 2+ messages in thread
From: Mike Kravetz @ 2021-01-21 19:02 UTC (permalink / raw)
To: Miaohe Lin, akpm; +Cc: linux-mm, linux-kernel
On 1/19/21 11:15 PM, Miaohe Lin wrote:
> The variable avoid_reserve is meaningless because we never changed its
> value and just passed it to alloc_huge_page(). So remove it to make code
> more clear that in hugetlbfs_fallocate, we never avoid reserve when alloc
> hugepage yet. Also add a comment offered by Mike Kravetz to explain this.
>
> Reviewed-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> Cc: Mike Kravetz <mike.kravetz@oracle.com>
> ---
> fs/hugetlbfs/inode.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
>
> diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
> index 4bbfd78a7ccb..14df2f73b8ef 100644
> --- a/fs/hugetlbfs/inode.c
> +++ b/fs/hugetlbfs/inode.c
> @@ -680,7 +680,6 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset,
> */
> struct page *page;
> unsigned long addr;
> - int avoid_reserve = 0;
>
> cond_resched();
>
> @@ -716,8 +715,15 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset,
> continue;
> }
>
> - /* Allocate page and add to page cache */
> - page = alloc_huge_page(&pseudo_vma, addr, avoid_reserve);
> + /*
> + * Allocate page without setting the avoid_reserve argument.
> + * There certainly are no reserves associated with the
> + * pseudo_vma. However, there could be shared mappings with
> + * reserves for the file at the inode level. If we fallocate
> + * pages in these areas, we need to consume the reserves
> + * to keep reservation accounting consistent.
> + */
> + page = alloc_huge_page(&pseudo_vma, addr, 0);
> hugetlb_drop_vma_policy(&pseudo_vma);
> if (IS_ERR(page)) {
> mutex_unlock(&hugetlb_fault_mutex_table[hash]);
>
--
Mike Kravetz
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-01-21 22:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-20 7:15 [PATCH v2] hugetlbfs: remove meaningless variable avoid_reserve Miaohe Lin
2021-01-21 19:02 ` Mike Kravetz
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.