linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/1] Clarify huge_pte_offset() semantics
@ 2017-07-25 15:41 Punit Agrawal
  2017-07-25 15:41 ` [PATCH 1/1] mm/hugetlb: Make huge_pte_offset() consistent and document behaviour Punit Agrawal
  0 siblings, 1 reply; 18+ messages in thread
From: Punit Agrawal @ 2017-07-25 15:41 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Punit Agrawal, Naoya Horiguchi, linux-mm, linux-kernel,
	linux-arch, steve.capper, will.deacon, catalin.marinas,
	kirill.shutemov, Michal Hocko, Mike Kravetz

Hi,

The following patch is an attempt to make huge_pte_offset() consistent
when dealing with different levels of the page table and document the
expected semantics. Previously posting can be found at [0].

Changelog

RFC - v1
* Merge Patch 1 and 2 - preserve bisectability
* Drop RFC tag

Original cover letter follows...

The generic implementation of huge_pte_offset() has inconsistent
behaviour when looking up hugepage PUDs vs PMDs entries that are not
present (returning NULL vs pte_t*).

Similarly, it returns NULL when encountering swap entries although all
the callers have special checks to properly deal with swap entries.

Without clear semantics, it is difficult to determine if a change
breaks huge_pte_offset() without going through all the scenarios where
it is used.

I faced this recently when updating the arm64 implementation of
huge_pte_offset() to handle swap entries (related to enabling poisoned
memeory)[1]. And will come across again when I update it for
contiguous hugepage support now that core changes have been merged.

To address these issues, this following patch -

* makes huge_pte_offset() consistent between PUD and PMDs
* and, documents the expected behaviour of huge_pte_offset()

All feedback welcome.

Thanks,
Punit

[0] https://lkml.org/lkml/2017/7/24/514
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f02ab08afbe76ee7b0b2a34a9970e7dd200d8b01

Punit Agrawal (1):
  mm/hugetlb: Make huge_pte_offset() consistent and document behaviour

 mm/hugetlb.c | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

-- 
2.11.0

--
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>

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2017-08-30  7:49 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-25 15:41 [PATCH 0/1] Clarify huge_pte_offset() semantics Punit Agrawal
2017-07-25 15:41 ` [PATCH 1/1] mm/hugetlb: Make huge_pte_offset() consistent and document behaviour Punit Agrawal
2017-07-26  8:39   ` Catalin Marinas
2017-07-26  8:50   ` Michal Hocko
2017-07-26  8:53     ` Michal Hocko
2017-07-26 12:11       ` Punit Agrawal
2017-07-26 12:33         ` Michal Hocko
2017-07-26 12:47           ` Michal Hocko
2017-07-26 13:34             ` Punit Agrawal
2017-07-27  3:16               ` Mike Kravetz
2017-07-27 12:58                 ` Punit Agrawal
2017-08-18 14:54   ` [PATCH v2] mm/hugetlb.c: make " Punit Agrawal
2017-08-18 21:29     ` Mike Kravetz
2017-08-21 18:07       ` Catalin Marinas
2017-08-21 21:30         ` Mike Kravetz
2017-08-22 15:32           ` Punit Agrawal
2017-08-22 10:11     ` Catalin Marinas
2017-08-30  7:49     ` Michal Hocko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).