Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp6606062pxb; Wed, 17 Feb 2021 08:38:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJyECDkx70aAmMg4uVsD7tfA30MzRtrSdJMPI+nB09ZhdQWLksCwoymdhH5yTwGEeyh3sijW X-Received: by 2002:a17:906:5798:: with SMTP id k24mr3371505ejq.125.1613579930732; Wed, 17 Feb 2021 08:38:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613579930; cv=none; d=google.com; s=arc-20160816; b=hn/+Mwx8sLlzSCJZ0U4j0L1KWEK891IYYPWb/dE5S1nj7q/LZYZr3z6hvn0EixcI0J v8pK0oydsEdj+YK3aTFHDmizNG8zTuFW/ytygi3GVoP2dgX2S1qcEzdc/jsVl97D1ixN V3khUZVuMQwKhk6BjwJq1tJ2S99UTuDosIt7pr/Srxw9MmomiQqx+513ldGdIwxFhlG6 ep5cmefpZ4zxY+mz9pfptbS5KIujINVhBiWC8cQTxdWubScnl3TeP+ewKS1DBMvD7/Xr hxB/IZa1VC8K0ht1SXcVtWSr76FSF9+KyqJyHjEoRGJySsj0Oq9rJKsNh79t9+Qi2vut mNAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=WXIcl6OjwHYOdUvY1AbzlPKs0gf3kbJZZdxqTT5jVpM=; b=fcJR9ndObtJPGOXjky4On/8wpTX/5mxYL7H5MdMuyrHuI63IZ30X3dDQry4+CG693D X1ARgY97RHjjBRl+vPELtOme+XjWUzeiwuJyR7jdLnD/tIGMxxqOLMTmnD50/vC3VePS 76I6J4VnFjT6pmasFBUXoSPGHBWpSUrUHpCaTCbX5qW6w4xvO/291ktvuu3Qd3I03T7A /520Fomgh8aAugB1XcDN79+EEgYoTWIlBJCAhuUlBz9nvZP3tpSyd61as8eMls9aDuNi uX3tyRbYuG3DUWjvd+f6VEe6wvWh5ZCBbfYNroIXuM5Q9NLcDBU5582R/ojHbidQ5wJk lZVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=G8IMiTzq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qt10si1938032ejb.462.2021.02.17.08.38.26; Wed, 17 Feb 2021 08:38:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=G8IMiTzq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234060AbhBQQgx (ORCPT + 99 others); Wed, 17 Feb 2021 11:36:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47460 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233986AbhBQQgs (ORCPT ); Wed, 17 Feb 2021 11:36:48 -0500 Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99F22C061574 for ; Wed, 17 Feb 2021 08:36:08 -0800 (PST) Received: by mail-pg1-x536.google.com with SMTP id o38so8798075pgm.9 for ; Wed, 17 Feb 2021 08:36:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=WXIcl6OjwHYOdUvY1AbzlPKs0gf3kbJZZdxqTT5jVpM=; b=G8IMiTzquvhqASKS3eBBR2Tqy32NX8vLtGtNGB7t8MEsE32dUThk9wltx7hM3S0gue Vs0SKBMmVSJxLwHdWLW2pddn7LV8NsV+kknrwuL65T2TTGOXlEoXM4wN2U/xQEdyGilT YkqbBI/WDTPy5JrhI8u9Q5eVzSuKygRGE9dxEcG4iO8o7l9xwnjkwiZi0gybWwrHODrO OHoT1yA3JyDAkdZFvTmUPnEBv2nt8lj7GZ7i8ZzhbIjn1V3wDt28gNTT1R9S0tgDsdlI lfGY3awFwpT25EDAE/VaLIJwJh4f7HCHqJgi7OG2ULnTcPbqRx6W5Z5/SbBgJYL6ZvZO iucQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=WXIcl6OjwHYOdUvY1AbzlPKs0gf3kbJZZdxqTT5jVpM=; b=DUZhG/JssHa/2BnyHf5SLf33kujnHb4CCc8+OP/GsT4bsgagatMY3WGl+HI36Z3gwA VHfxZ9WRHfsxGkgdBn9oy21jSG/TeyVPR4Im2dKgHTK7hBOk1LHsZ3zFZamBitUrQyG8 BVnLyGYpa9Z4a3dUwQYbYNuRqUZ29T60AkT6NDZ8kr1eYL6bTIHQrFpjQvwj+qGMTG7U XVMM8dI+82Chnz9dGZEFmQWP2Cf+hll6U3Q1uYfRfg/s4B1nP5GDruy6ZVj0WXsElof6 aAGwFHChAF3pY/cdnBR/67Be5EhcA5jDW1xagYLywmIFM7CRhABzEygg3sarROi+ceYq Wskw== X-Gm-Message-State: AOAM532SsVllsHIIzC7f4+XtTN+R8B3zsc2ZCym2+l+IteYMARDtkIGf uT1RIewtWQ9iqT9m2lB2zd8= X-Received: by 2002:a63:1343:: with SMTP id 3mr209669pgt.166.1613579768128; Wed, 17 Feb 2021 08:36:08 -0800 (PST) Received: from bbox-1.mtv.corp.google.com ([2620:15c:211:201:cdf7:1c5d:c444:e341]) by smtp.gmail.com with ESMTPSA id a136sm2939364pfa.66.2021.02.17.08.36.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 08:36:07 -0800 (PST) Sender: Minchan Kim From: Minchan Kim To: Andrew Morton Cc: linux-mm , LKML , mhocko@suse.com, david@redhat.com, joaodias@google.com, Minchan Kim Subject: [PATCH] mm: be more verbose for alloc_contig_range faliures Date: Wed, 17 Feb 2021 08:36:03 -0800 Message-Id: <20210217163603.429062-1-minchan@kernel.org> X-Mailer: git-send-email 2.30.0.478.g8a0d178c01-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org alloc_contig_range is usually used on cma area or movable zone. It's critical if the page migration fails on those areas so dump more debugging message like memory_hotplug unless user specifiy __GFP_NOWARN. Signed-off-by: Minchan Kim --- mm/page_alloc.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 0b55c9c95364..67f3ee3a1528 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -8486,6 +8486,15 @@ static int __alloc_contig_migrate_range(struct compact_control *cc, NULL, (unsigned long)&mtc, cc->mode, MR_CONTIG_RANGE); } if (ret < 0) { + if (!(cc->gfp_mask & __GFP_NOWARN)) { + struct page *page; + + list_for_each_entry(page, &cc->migratepages, lru) { + pr_warn("migrating pfn %lx failed ret:%d ", + page_to_pfn(page), ret); + dump_page(page, "migration failure"); + } + } putback_movable_pages(&cc->migratepages); return ret; } @@ -8728,6 +8737,8 @@ struct page *alloc_contig_pages(unsigned long nr_pages, gfp_t gfp_mask, pfn = ALIGN(zone->zone_start_pfn, nr_pages); while (zone_spans_last_pfn(zone, pfn, nr_pages)) { if (pfn_range_valid_contig(zone, pfn, nr_pages)) { + unsigned long gfp_flags; + /* * We release the zone lock here because * alloc_contig_range() will also lock the zone @@ -8736,8 +8747,11 @@ struct page *alloc_contig_pages(unsigned long nr_pages, gfp_t gfp_mask, * and cause alloc_contig_range() to fail... */ spin_unlock_irqrestore(&zone->lock, flags); + + if (zone_idx(zone) != ZONE_MOVABLE) + gfp_flags = gfp_mask | __GFP_NOWARN; ret = __alloc_contig_pages(pfn, nr_pages, - gfp_mask); + gfp_flags); if (!ret) return pfn_to_page(pfn); spin_lock_irqsave(&zone->lock, flags); -- 2.30.0.478.g8a0d178c01-goog