Re: [patch 1/2] mm, doc: cleanup and clarify munmap behavior for hugetlb memory
From: Eric B Munson
Date: Mon Mar 30 2015 - 10:23:43 EST
On Sun, 29 Mar 2015, Hugh Dickins wrote:
> On Thu, 26 Mar 2015, David Rientjes wrote:
>
> > munmap(2) of hugetlb memory requires a length that is hugepage aligned,
> > otherwise it may fail. Add this to the documentation.
>
> Thanks for taking this on, David. But although munmap(2) is the one
> Davide called out, it goes beyond that, doesn't it? To mprotect and
> madvise and ...
>
> I don't want to work out the list myself: is_vm_hugetlb_page() is
> special-cased all over, and different syscalls react differently.
>
> Which is another reason why, like you, I much prefer not to interfere
> with the long established behavior: it would be very easy to introduce
> bugs and worse inconsistencies.
>
> And mprotect(2) is a good example of why we should not mess around
> with the long established API here: changing an mprotect from failing
> on a particular size to acting on a larger size is not a safe change.
>
> Eric, I apologize for bringing you in to the discussion, and then
> ignoring your input. I understand that you would like MAP_HUGETLB
> to behave more understandably. We can all agree that the existing
> behavior is unsatisfying. But it's many years too late now to
> change it around - and I suspect that a full exercise to do so would
> actually discover some good reasons why the original choices were made.
No worries, my main concern was avoiding the confusion that led me down
the rabbit hole of compaction and mlock. As long as the documentation,
man pages, and the code all agree I am satisfied. I would have
preferred to make the code match the docs, but I understand that
changing the code now introduces a risk of breaking userspace.
It is charitable of you to assume that there were good reasons for the
original decision. But as the author of the code in question, I suspect
the omission was one of my own inexperience.
Eric
Attachment:
signature.asc
Description: Digital signature