lkml.org 
[lkml]   [2011]   [Jan]   [26]   [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.
    Hi, Andrea
    (2011/01/26 7:46), Andrea Arcangeli wrote:
    > 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))
    >
    I will modify it.

    Thanks.

    Best Regards,
    Jin Dongming

    > 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).
    >
    > --
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/
    >
    >




    \
     
     \ /
      Last update: 2011-01-27 01:13    [W:0.025 / U:61.220 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site