From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D2B5EC433F5 for ; Fri, 10 Dec 2021 07:54:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 140596B0071; Fri, 10 Dec 2021 02:54:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0F0816B0072; Fri, 10 Dec 2021 02:54:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F21546B0074; Fri, 10 Dec 2021 02:54:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0033.hostedemail.com [216.40.44.33]) by kanga.kvack.org (Postfix) with ESMTP id E298C6B0071 for ; Fri, 10 Dec 2021 02:54:04 -0500 (EST) Received: from smtpin28.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 980B18249980 for ; Fri, 10 Dec 2021 07:53:54 +0000 (UTC) X-FDA: 78901120788.28.80A4442 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by imf21.hostedemail.com (Postfix) with ESMTP id 31D3D1C0005 for ; Fri, 10 Dec 2021 07:53:53 +0000 (UTC) Received: by mail-pg1-f172.google.com with SMTP id f125so7436183pgc.0 for ; Thu, 09 Dec 2021 23:53:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:to:cc:references :from:in-reply-to:content-transfer-encoding; bh=ijVBfG1KG/aW/R5+/Gi9cb70eNCVtOkQHVClSlu2XwQ=; b=f9zXHqflj7w8rm18C9SRhCSZ0h8uljnpXHk4Vjg37Ib9U6eihTWF8OGGbBbjwovGIt WdIAiNb9SNj9vX3/WkE92YG6UOQugvY0wWCTFxfzKL15NKrL4ZQ0uOJvhbWqYEwCfDb+ G8NUmHY1ychu8qM/0vvRjYBeLSJ92mS9HJ+K6eFJUgLaoCZeHFNNzpVRLU20oxHAz7oL 6XRb0fJAxHVDdAaUw2xEE3YbeilVIptXXXfmGnzvQKXqOs4PEgYz5Y26V3rag1Fz5q70 NwCHGKIS6EwduXaYhhahvciWp9RERZCsFd5bJ93Wmf7yqZ3CPDLzKlK7t5ozokyrtfAg Jh6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :to:cc:references:from:in-reply-to:content-transfer-encoding; bh=ijVBfG1KG/aW/R5+/Gi9cb70eNCVtOkQHVClSlu2XwQ=; b=HIHvmnSGJNxzIjN6xvUcYKSNilb5Rt0oeLnk08pXi/+Zjfs+W0JeOixqu+u2G+n3bE baT0F2LQ/jrlS8IMTWU9dwiL/YG7Mka6Hg96nuyq8xrtc7tw9ZsW16THEdcq2quv4bat h3ibav1mgYBdergcyZbNdkl9U2r3MrvAYY3L37N1bPsmAzi+bSn/rsIOOcvfqBGQ7XOi rdHFAK1Y8Z5TYTm0jUnDTM1HXN9UPvlXMbycEDCzEy5keuH8pznCvyvNS5BPzAfCdSLK PMaTBAl1m+8Q8WZxD+pdddcDNOo6X8W7FGMpRgbAiXGJWsbeUOrfUwxJZa4KCsroZ1rC otag== X-Gm-Message-State: AOAM531aYAHxW6OhW8zuZKcaNl2P3Cjzpag40BxFIFDJ2Zddw/LyJwIC TWholBAx16j5ksr0loZ1Lvg= X-Google-Smtp-Source: ABdhPJwiYQdsfZBv/0L8jEVNhWHsAYR27PUBucnpzzQOeWrnW8MMFcsmzH8CePs6w6mAE1aeqGTsGw== X-Received: by 2002:a65:5c82:: with SMTP id a2mr39036759pgt.370.1639122833431; Thu, 09 Dec 2021 23:53:53 -0800 (PST) Received: from [30.240.98.4] ([205.204.117.108]) by smtp.gmail.com with ESMTPSA id bt2sm1733596pjb.57.2021.12.09.23.53.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Dec 2021 23:53:52 -0800 (PST) Message-ID: <84807a03-f7d1-83cb-16df-bacc58de4529@gmail.com> Date: Fri, 10 Dec 2021 15:53:47 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Subject: Re: [RFC PATCH v2 3/7] mm: migrate: allocate the right size of non hugetlb or THP compound pages. To: Zi Yan , David Hildenbrand , linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Michael Ellerman , Christoph Hellwig , Marek Szyprowski , Robin Murphy , linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux-foundation.org, iommu@lists.linux-foundation.org, Vlastimil Babka , Mel Gorman References: <20211209230414.2766515-1-zi.yan@sent.com> <20211209230414.2766515-4-zi.yan@sent.com> From: Eric Ren In-Reply-To: <20211209230414.2766515-4-zi.yan@sent.com> Content-Type: text/plain; charset=UTF-8; format=flowed X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 31D3D1C0005 X-Stat-Signature: uq955u6nkykn683y1grii41qhwk44mr6 Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=f9zXHqfl; spf=pass (imf21.hostedemail.com: domain of renzhengeek@gmail.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=renzhengeek@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-HE-Tag: 1639122833-635846 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi, On 2021/12/10 07:04, Zi Yan wrote: > From: Zi Yan > > alloc_migration_target() is used by alloc_contig_range() and non-LRU > movable compound pages can be migrated. Current code does not allocate = the > right page size for such pages. Check THP precisely using > is_transparent_huge() and add allocation support for non-LRU compound > pages. Could you elaborate on why the current code doesn't get the right size?=C2= =A0=20 how this patch fixes it. The description sounds like it's an existing bug, if so, the patch=20 subject should be changed to "Fixes ..."? > > Signed-off-by: Zi Yan > --- > mm/migrate.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index d487a399253b..2ce3c771b1de 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -1563,7 +1563,7 @@ struct page *alloc_migration_target(struct page *= page, unsigned long private) > return alloc_huge_page_nodemask(h, nid, mtc->nmask, gfp_mask); > } > =20 > - if (PageTransHuge(page)) { > + if (is_transparent_hugepage(page)) { > /* > * clear __GFP_RECLAIM to make the migration callback > * consistent with regular THP allocations. > @@ -1572,13 +1572,17 @@ struct page *alloc_migration_target(struct page= *page, unsigned long private) if (PageTransHuge(page)) {=C2=A0 // just give more code context ... > gfp_mask |=3D GFP_TRANSHUGE; > order =3D HPAGE_PMD_ORDER; order assigned here > } > + if (PageCompound(page)) { > + gfp_mask |=3D __GFP_COMP; > + order =3D compound_order(page); re-assinged again as THP is a compound page? Thanks, Eric > + } > zidx =3D zone_idx(page_zone(page)); > if (is_highmem_idx(zidx) || zidx =3D=3D ZONE_MOVABLE) > gfp_mask |=3D __GFP_HIGHMEM; > =20 > new_page =3D __alloc_pages(gfp_mask, order, nid, mtc->nmask); > =20 > - if (new_page && PageTransHuge(new_page)) > + if (new_page && is_transparent_hugepage(page)) > prep_transhuge_page(new_page); > =20 > return new_page;