From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932228AbcAHUdD (ORCPT ); Fri, 8 Jan 2016 15:33:03 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:39264 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751690AbcAHUdB (ORCPT ); Fri, 8 Jan 2016 15:33:01 -0500 Date: Fri, 8 Jan 2016 12:33:00 -0800 From: Andrew Morton To: Naoya Horiguchi Cc: Andi Kleen , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Naoya Horiguchi , "Kirill A. Shutemov" Subject: Re: [PATCH v1] mm: soft-offline: exit with failure for non anonymous thp Message-Id: <20160108123300.843d370916d3248be297d831@linux-foundation.org> In-Reply-To: <1452237842-11076-1-git-send-email-n-horiguchi@ah.jp.nec.com> References: <1452237842-11076-1-git-send-email-n-horiguchi@ah.jp.nec.com> X-Mailer: Sylpheed 3.4.1 (GTK+ 2.24.23; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 8 Jan 2016 16:24:02 +0900 Naoya Horiguchi wrote: > Currently memory_failure() doesn't handle non anonymous thp case, because we > can hardly expect the error handling to be successful, and it can just hit > some corner case which results in BUG_ON or something severe like that. > This is also a case for soft offline code, so let's make it in the same way. > > ... > > --- v4.4-rc8/mm/memory-failure.c > +++ v4.4-rc8_patched/mm/memory-failure.c > @@ -1751,9 +1751,11 @@ int soft_offline_page(struct page *page, int flags) > return -EBUSY; > } > if (!PageHuge(page) && PageTransHuge(hpage)) { > - if (PageAnon(hpage) && unlikely(split_huge_page(hpage))) { > - pr_info("soft offline: %#lx: failed to split THP\n", > - pfn); > + if (!PageAnon(hpage) || unlikely(split_huge_page(hpage))) { > + if (!PageAnon(hpage)) > + pr_info("soft offline: %#lx: non anonymous thp\n", pfn); > + else > + pr_info("soft offline: %#lx: thp split failed\n", pfn); > if (flags & MF_COUNT_INCREASED) > put_hwpoison_page(page); > return -EBUSY; Kirill's http://ozlabs.org/~akpm/mmots/broken-out/thp-mm-split_huge_page-caller-need-to-lock-page.patch mucks with this code as well. Could you please redo this patch against linux-next? Thanks.