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 X-Spam-Level: X-Spam-Status: No, score=-12.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AAA76C43461 for ; Tue, 8 Sep 2020 20:19:58 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 488FB20936 for ; Tue, 8 Sep 2020 20:19:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="hYO5/+nN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 488FB20936 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id E23B96B0073; Tue, 8 Sep 2020 16:19:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DD21E6B0074; Tue, 8 Sep 2020 16:19:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D14556B0075; Tue, 8 Sep 2020 16:19:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0238.hostedemail.com [216.40.44.238]) by kanga.kvack.org (Postfix) with ESMTP id B79916B0073 for ; Tue, 8 Sep 2020 16:19:57 -0400 (EDT) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 879431EF2 for ; Tue, 8 Sep 2020 20:19:57 +0000 (UTC) X-FDA: 77241010434.29.dust23_3312a54270d7 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin29.hostedemail.com (Postfix) with ESMTP id 5971018086CCF for ; Tue, 8 Sep 2020 20:19:57 +0000 (UTC) X-HE-Tag: dust23_3312a54270d7 X-Filterd-Recvd-Size: 4658 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf17.hostedemail.com (Postfix) with ESMTP for ; Tue, 8 Sep 2020 20:19:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=EynD56nWZMM4c+wodZ7nOQgIxm0ME9e8vivVA3QNXkA=; b=hYO5/+nN7qnfd2q2z+4ulXmAPy aKFo2JXk5k22K4/Zs9T3PZUOT738U2lps55+zpkZiCDsK4Hw0qOyyJh94fTFYd95mcSuCyBQ2/gVd bb4vgnN/4SH2ktLoNY51nNjwnOaIDL1Prlwfk62O07W9rHuAqvpDXmu6Dfa4nH0+9FVGntQ+YMFTH 0k0LPZzGOpMoAIKu7HeOTcpgeF4fjfEoGpc+snSurRPilBobmkhneiSrA15a4TQZLqiQJcBbikRbB UCHK/DQmL+5Z+D1VzQ5O1SjLtvV5UWZhQJbfQBxxrSB8EWWxulj4L6U5I0g2Lr27Zp56WawnE4WVH sU5Zu0lg==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFjiS-0006lV-45; Tue, 08 Sep 2020 19:55:44 +0000 From: "Matthew Wilcox (Oracle)" To: linux-mm@kvack.org, Andrew Morton Cc: "Matthew Wilcox (Oracle)" , "Kirill A . Shutemov" , Huang Ying Subject: [PATCH 03/11] mm/page_owner: Change split_page_owner to take a count Date: Tue, 8 Sep 2020 20:55:30 +0100 Message-Id: <20200908195539.25896-4-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200908195539.25896-1-willy@infradead.org> References: <20200908195539.25896-1-willy@infradead.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: 5971018086CCF X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 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: The implementation of split_page_owner() prefers a count rather than the old order of the page. When we support a variable size THP, we won't have the order at this point, but we will have the number of pages. So change the interface to what the caller and callee would prefer. Signed-off-by: Matthew Wilcox (Oracle) --- include/linux/page_owner.h | 6 +++--- mm/huge_memory.c | 2 +- mm/page_owner.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/page_owner.h b/include/linux/page_owner.h index 8679ccd722e8..3468794f83d2 100644 --- a/include/linux/page_owner.h +++ b/include/linux/page_owner.h @@ -11,7 +11,7 @@ extern struct page_ext_operations page_owner_ops; extern void __reset_page_owner(struct page *page, unsigned int order); extern void __set_page_owner(struct page *page, unsigned int order, gfp_t gfp_mask); -extern void __split_page_owner(struct page *page, unsigned int order); +extern void __split_page_owner(struct page *page, unsigned int nr); extern void __copy_page_owner(struct page *oldpage, struct page *newpage= ); extern void __set_page_owner_migrate_reason(struct page *page, int reaso= n); extern void __dump_page_owner(struct page *page); @@ -31,10 +31,10 @@ static inline void set_page_owner(struct page *page, __set_page_owner(page, order, gfp_mask); } =20 -static inline void split_page_owner(struct page *page, unsigned int orde= r) +static inline void split_page_owner(struct page *page, unsigned int nr) { if (static_branch_unlikely(&page_owner_inited)) - __split_page_owner(page, order); + __split_page_owner(page, nr); } static inline void copy_page_owner(struct page *oldpage, struct page *ne= wpage) { diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 2ccff8472cd4..adc5a91d8fd4 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2418,7 +2418,7 @@ static void __split_huge_page(struct page *page, st= ruct list_head *list, =20 ClearPageCompound(head); =20 - split_page_owner(head, HPAGE_PMD_ORDER); + split_page_owner(head, HPAGE_PMD_NR); =20 /* See comment in __split_huge_page_tail() */ if (PageAnon(head)) { diff --git a/mm/page_owner.c b/mm/page_owner.c index 360461509423..4ca3051a1035 100644 --- a/mm/page_owner.c +++ b/mm/page_owner.c @@ -204,7 +204,7 @@ void __set_page_owner_migrate_reason(struct page *pag= e, int reason) page_owner->last_migrate_reason =3D reason; } =20 -void __split_page_owner(struct page *page, unsigned int order) +void __split_page_owner(struct page *page, unsigned int nr) { int i; struct page_ext *page_ext =3D lookup_page_ext(page); @@ -213,7 +213,7 @@ void __split_page_owner(struct page *page, unsigned i= nt order) if (unlikely(!page_ext)) return; =20 - for (i =3D 0; i < (1 << order); i++) { + for (i =3D 0; i < nr; i++) { page_owner =3D get_page_owner(page_ext); page_owner->order =3D 0; page_ext =3D page_ext_next(page_ext); --=20 2.28.0