On 5/3/17 12:02 PM, Prakash Sangappa wrote:
On 5/2/17 4:43 PM, Dave Hansen wrote:
Ideally, it would be something that is *not* specifically for hugetlbfs.
MADV_NOAUTOFILL, for instance, could be defined to SIGSEGV whenever
memory is touched that was not populated with MADV_WILLNEED, mlock(),
etc...
If this is a generic advice type, necessary support will have to be
implemented
in various filesystems which can support this.
The proposed behavior for 'noautofill' was to not fill holes in
files(like sparse files).
In the page fault path, mm would not know if the mmapped address on which
the fault occurred, is over a hole in the file or just that the page
is not available
in the page cache. The underlying filesystem would be called and it
determines
if it is a hole and that is where it would fail and not fill the hole,
if this support is added.
Normally, filesystem which support sparse files(holes in file)
automatically fill the hole
when accessed. Then there is the issue of file system block size and
page size. If the
block sizes are smaller then page size, it could mean the noautofill
would only work
if the hole size is equal to or a multiple of, page size?
In case of hugetlbfs it is much straight forward. Since this
filesystem is not like a normal
filesystems and and the file sizes are multiple of huge pages. The
hole will be a multiple
of the huge page size. For this reason then should the advise be
specific to hugetlbfs?
Any further comments? I think introducing a general madvise option or a
mmap flag applicable to all filesystems, may not be required. The
'noautofill' behavior would be specifically useful in hugetlbfs filesystem.
So, if it is specific to hugetlbfs, will the mount option be ok?
Otherwise adding a madvise / mmap option specific to hugetlbfs, be
preferred?
--
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>