lkml.org 
[lkml]   [2011]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/3] Fix unsuitable behavior for poisoned tail pages of THP.
    On Tue, Jan 25, 2011 at 02:46:32PM +0900, Jin Dongming wrote:
    > When a tail page of THP is poisoned, memory-failure will do
    > nothing except setting poison flag, while the expected behavior is
    > that the process, who is using the poisoned tail page, should be
    > killed.
    >
    > The above problem is caused by lru checking of the poisoned tail page
    > of THP. Because PG_lru flag is only set on the head page of
    > THP, the check always consider the poisoned tail page as NON
    > lru page.
    >
    > So avoid checking NON lru for THP, as like as hugetlb.
    >
    > Signed-off-by: Jin Dongming <jin.dongming@np.css.fujitsu.com>
    > Reviewed-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
    > ---
    > mm/memory-failure.c | 27 +++++++++++++++------------
    > 1 files changed, 15 insertions(+), 12 deletions(-)
    >
    > diff --git a/mm/memory-failure.c b/mm/memory-failure.c
    > index 5396603..44a1bdf 100644
    > --- a/mm/memory-failure.c
    > +++ b/mm/memory-failure.c
    > @@ -1046,19 +1046,22 @@ int __memory_failure(unsigned long pfn, int trapno, int flags)
    > * The check (unnecessarily) ignores LRU pages being isolated and
    > * walked by the page reclaim code, however that's not a big loss.
    > */
    > - if (!PageLRU(p) && !PageHuge(p))
    > - shake_page(p, 0);
    > - if (!PageLRU(p) && !PageHuge(p)) {
    > - /*
    > - * shake_page could have turned it free.
    > - */
    > - if (is_free_buddy_page(p)) {
    > - action_result(pfn, "free buddy, 2nd try", DELAYED);
    > - return 0;
    > + if (!PageCompound(p)) {

    Here the check could become a:

    if (!PageHuge(p) && !PageTransCompound(p))

    so the whole branch is optimized away at build time when both
    hugetlbfs and THP are set =n (or in archs not supporting either of
    those).



    \
     
     \ /
      Last update: 2011-01-25 23:49    [W:0.032 / U:31.340 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site