lkml.org 
[lkml]   [2017]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/1] mm/hugetlb: Make huge_pte_offset() consistent and document behaviour
    On Wed 26-07-17 10:50:38, Michal Hocko wrote:
    > On Tue 25-07-17 16:41:14, Punit Agrawal wrote:
    > > When walking the page tables to resolve an address that points to
    > > !p*d_present() entry, huge_pte_offset() returns inconsistent values
    > > depending on the level of page table (PUD or PMD).
    > >
    > > It returns NULL in the case of a PUD entry while in the case of a PMD
    > > entry, it returns a pointer to the page table entry.
    > >
    > > A similar inconsitency exists when handling swap entries - returns NULL
    > > for a PUD entry while a pointer to the pte_t is retured for the PMD
    > > entry.
    > >
    > > Update huge_pte_offset() to make the behaviour consistent - return NULL
    > > in the case of p*d_none() and a pointer to the pte_t for hugepage or
    > > swap entries.
    > >
    > > Document the behaviour to clarify the expected behaviour of this
    > > function. This is to set clear semantics for architecture specific
    > > implementations of huge_pte_offset().
    >
    > hugetlb pte semantic is a disaster and I agree it could see some
    > cleanup/clarifications but I am quite nervous to see a patchi like this.
    > How do we check that nothing will get silently broken by this change?

    Forgot to add. Hugetlb have been special because of the pte sharing. I
    haven't looked into that code for quite some time but there might be a
    good reason why pud behave differently.
    --
    Michal Hocko
    SUSE Labs

    \
     
     \ /
      Last update: 2017-07-26 10:54    [W:4.502 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site