From: Mike Kravetz <mike.kravetz@oracle.com>
To: Hillf Danton <hillf.zj@alibaba-inc.com>,
'Dave Hansen' <dave.hansen@linux.intel.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org, Michal Hocko <mhocko@suse.cz>
Subject: Re: [RFC PATCH 4/4] mm: madvise allow remove operation for hugetlbfs
Date: Sat, 18 Apr 2015 09:16:53 -0700 [thread overview]
Message-ID: <55328375.20407@oracle.com> (raw)
In-Reply-To: <55313ECD.3050604@oracle.com>
On 04/17/2015 10:11 AM, Mike Kravetz wrote:
> On 04/17/2015 12:10 AM, Hillf Danton wrote:
>>>
>>> Now that we have hole punching support for hugetlbfs, we can
>>> also support the MADV_REMOVE interface to it.
>>>
>>> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
>>> Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
>>> ---
>>> mm/madvise.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/mm/madvise.c b/mm/madvise.c
>>> index d551475..c4a1027 100644
>>> --- a/mm/madvise.c
>>> +++ b/mm/madvise.c
>>> @@ -299,7 +299,7 @@ static long madvise_remove(struct vm_area_struct
>>> *vma,
>>>
>>> *prev = NULL; /* tell sys_madvise we drop mmap_sem */
>>>
>>> - if (vma->vm_flags & (VM_LOCKED | VM_HUGETLB))
>>> + if (vma->vm_flags & VM_LOCKED)
>>> return -EINVAL;
>>>
>>> f = vma->vm_file;
>>> --
>>> 2.1.0
>>
>> After the above change offset is computed,
>>
>> offset = (loff_t)(start - vma->vm_start)
>> + ((loff_t)vma->vm_pgoff << PAGE_SHIFT);
>>
>> and I wonder if it is correct for huge page mapping.
>
> I think it will be correct.
>
> The above will be a (base) page size aligned offset into the file.
> This offset will be huge page aligned in the fallocate hole punch
> code.
>
> /*
> * For hole punch round up the beginning offset of the hole and
> * round down the end.
> */
> hole_start = (offset + hpage_size - 1) & ~huge_page_mask(h);
> hole_end = (offset + len - (hpage_size - 1)) * ~huge_page_mask(h);
>
> Was the alignment your concern, or something else?
Well, that alignment code in fallocate hole punch obviously wrong. :(
Sorry about that. I'll send out an updated RFC with working hole punch.
--
Mike Kravetz
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Mike Kravetz <mike.kravetz@oracle.com>
To: Hillf Danton <hillf.zj@alibaba-inc.com>,
"'Dave Hansen'" <dave.hansen@linux.intel.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org, Michal Hocko <mhocko@suse.cz>
Subject: Re: [RFC PATCH 4/4] mm: madvise allow remove operation for hugetlbfs
Date: Sat, 18 Apr 2015 09:16:53 -0700 [thread overview]
Message-ID: <55328375.20407@oracle.com> (raw)
In-Reply-To: <55313ECD.3050604@oracle.com>
On 04/17/2015 10:11 AM, Mike Kravetz wrote:
> On 04/17/2015 12:10 AM, Hillf Danton wrote:
>>>
>>> Now that we have hole punching support for hugetlbfs, we can
>>> also support the MADV_REMOVE interface to it.
>>>
>>> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
>>> Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
>>> ---
>>> mm/madvise.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/mm/madvise.c b/mm/madvise.c
>>> index d551475..c4a1027 100644
>>> --- a/mm/madvise.c
>>> +++ b/mm/madvise.c
>>> @@ -299,7 +299,7 @@ static long madvise_remove(struct vm_area_struct
>>> *vma,
>>>
>>> *prev = NULL; /* tell sys_madvise we drop mmap_sem */
>>>
>>> - if (vma->vm_flags & (VM_LOCKED | VM_HUGETLB))
>>> + if (vma->vm_flags & VM_LOCKED)
>>> return -EINVAL;
>>>
>>> f = vma->vm_file;
>>> --
>>> 2.1.0
>>
>> After the above change offset is computed,
>>
>> offset = (loff_t)(start - vma->vm_start)
>> + ((loff_t)vma->vm_pgoff << PAGE_SHIFT);
>>
>> and I wonder if it is correct for huge page mapping.
>
> I think it will be correct.
>
> The above will be a (base) page size aligned offset into the file.
> This offset will be huge page aligned in the fallocate hole punch
> code.
>
> /*
> * For hole punch round up the beginning offset of the hole and
> * round down the end.
> */
> hole_start = (offset + hpage_size - 1) & ~huge_page_mask(h);
> hole_end = (offset + len - (hpage_size - 1)) * ~huge_page_mask(h);
>
> Was the alignment your concern, or something else?
Well, that alignment code in fallocate hole punch obviously wrong. :(
Sorry about that. I'll send out an updated RFC with working hole punch.
--
Mike Kravetz
next prev parent reply other threads:[~2015-04-18 16:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <00e601d078da$9e762190$db6264b0$@alibaba-inc.com>
2015-04-17 7:10 ` [RFC PATCH 4/4] mm: madvise allow remove operation for hugetlbfs Hillf Danton
2015-04-17 7:10 ` Hillf Danton
2015-04-17 17:11 ` Mike Kravetz
2015-04-17 17:11 ` Mike Kravetz
2015-04-18 16:16 ` Mike Kravetz [this message]
2015-04-18 16:16 ` Mike Kravetz
2015-04-16 23:02 [RFC PATCH 0/4] hugetlbfs: add fallocate support Mike Kravetz
2015-04-16 23:02 ` [RFC PATCH 4/4] mm: madvise allow remove operation for hugetlbfs Mike Kravetz
2015-04-16 23:02 ` Mike Kravetz
2015-04-17 6:44 ` Christoph Hellwig
2015-04-17 6:44 ` Christoph Hellwig
2015-04-17 16:53 ` Mike Kravetz
2015-04-17 16:53 ` Mike Kravetz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55328375.20407@oracle.com \
--to=mike.kravetz@oracle.com \
--cc=dave.hansen@linux.intel.com \
--cc=hillf.zj@alibaba-inc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.