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 0E218C0015E for ; Tue, 15 Aug 2023 12:10:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 71C278D0003; Tue, 15 Aug 2023 08:10:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6CC7D8D0001; Tue, 15 Aug 2023 08:10:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 593768D0003; Tue, 15 Aug 2023 08:10:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 497308D0001 for ; Tue, 15 Aug 2023 08:10:19 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 899B91C9997 for ; Tue, 15 Aug 2023 12:10:17 +0000 (UTC) X-FDA: 81126221274.07.F3A9495 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by imf28.hostedemail.com (Postfix) with ESMTP id 975FAC0013 for ; Tue, 15 Aug 2023 12:10:13 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=none; spf=none (imf28.hostedemail.com: domain of shikemeng@huaweicloud.com has no SPF policy when checking 45.249.212.51) smtp.mailfrom=shikemeng@huaweicloud.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692101415; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eVOdqxQ/AyCF7TpAURklkyjdytx2A68P5gSXTQR47vY=; b=vSlEykJsf+e46ncrwkV8AlOSJ7ZUDsVDyNYTTUa3htU382Ia99VLxWeq+pMBQh+4Awqa2k a+Eh2cTUsYzCO922WYkuYSAmfxsUQnanVNxFagy1u+SpuIhFrm7jWFGATxCIxPDmSJOCfy Mx1gCmGhEfUXXZbxYBTTBPmbAjGVO3A= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692101415; a=rsa-sha256; cv=none; b=N1Zcs+OHxVWFEs2T3ZIyymydAJ4ZD0zEfcUjTYTqqxK5+/4s4c2+DAVlv2D0J3ZOl/veHa fFTQp5FIV8EFp+pBRqPBjOZZ3PPfO777eD0iK2LuXQqSGXZJ/wayDBSxMNvRWl8yTAj5OX xCWb2MEVQnmc7EeysaN5jWhYSTwfM9o= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=none; spf=none (imf28.hostedemail.com: domain of shikemeng@huaweicloud.com has no SPF policy when checking 45.249.212.51) smtp.mailfrom=shikemeng@huaweicloud.com; dmarc=none Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4RQ97f3Zlgz4f3jLQ for ; Tue, 15 Aug 2023 20:10:06 +0800 (CST) Received: from [10.174.178.129] (unknown [10.174.178.129]) by APP1 (Coremail) with SMTP id cCh0CgA3ZjIea9tkq+3oAg--.25318S2; Tue, 15 Aug 2023 20:10:06 +0800 (CST) Subject: Re: [PATCH 7/9] mm/compaction: factor out code to test if we should run compaction for target order To: Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, mgorman@techsingularity.net, david@redhat.com References: <20230805110711.2975149-1-shikemeng@huaweicloud.com> <20230805110711.2975149-8-shikemeng@huaweicloud.com> <7b337eca-1c45-c802-0aea-50d8d149efb4@linux.alibaba.com> From: Kemeng Shi Message-ID: <631d62de-c9b5-3c5f-e0b3-df0109627a27@huaweicloud.com> Date: Tue, 15 Aug 2023 20:10:06 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 MIME-Version: 1.0 In-Reply-To: <7b337eca-1c45-c802-0aea-50d8d149efb4@linux.alibaba.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-CM-TRANSID:cCh0CgA3ZjIea9tkq+3oAg--.25318S2 X-Coremail-Antispam: 1UD129KBjvJXoWxAFyrXryfGFy5XFyrWF4fAFb_yoWrJF4DpF 18JrWUG3y8XF1fGr1xtF1UJFy5Xr48J3WDJrn2qF17Jw1ayr1jvr1qqryq9F1UXr4xJr4U JF4UXF9rZF15AaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkjb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Xr0_Ar1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Cr0_Gr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I 0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40E x7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x 0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lc7I2V7IY0VAS07AlzVAYIcxG8wCF04k20xvY0x0E wIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E74 80Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1lIxkGc2Ij64vIr41lIxAIcVC0 I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1lIxAIcVCF04 k26cxKx2IYs7xG6rWUJVWrZr1UMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIE c7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x07UWHqcUUUUU= X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: 975FAC0013 X-Rspam-User: X-Stat-Signature: hidoc3odfce8o1uo8ufqoekk1fpzzp9y X-Rspamd-Server: rspam03 X-HE-Tag: 1692101413-178287 X-HE-Meta: U2FsdGVkX1+tAjA7FwlNExQJynaohT0ZbQTWCOS5j775rykSq6eCJom9++2Wq1WRZNPR7sKmaYXyanIKkWPBBxpTTtP1JMsdKW+Xf3JQFGx/oUBQi1mDqBjZCWEeSk1ugnJKZrg0Nu4r7FbPYGVHfjQS9XVBHAk7V2RtelS7b6Mi67J+WK40qKZSdd94JCVps2RxesGL+YsMKFytkiqB/dwPzKDCLRPFICSxxYHq23470zGzFKaWax72zgGkLbihrgOCPj5jesMF2FFfsn5dvf8C9Fyvmy1lLE1VpuFmL2LgTiOJIKmxMjYijpCSjQMhlMcQHLfTPJw1qst12AdiBrsBq5vaZK/cIVORLYlxbPEF13i3x/X1itkumzsgNnCqr5Lp8U18sNg/YpnNE6bN7yxCvxjB58B7lPspFM1nxFCi/gmGue/xH0WK8ONpi/I9RQ/8odHbRj2q4Jx9QrBDIU1tgjSvmR4aHE5BE8r3cHhBiMCRjBNvfRB2zAtCEUfSnwLN2ryFbxVSnVoQFYHsHZ2Ut0FZ1VUgN16bJr7lZ918NeIqH+yv9GlBNFpT/8OMR/8luGDUx6lfahijj4Czy9Hwj9Pqp1wHagUZdtOueou+jgy+6e5nmp9BG4RBAhMXoOl8Cpq+YWbg0R3flVvXY8H8lFKS3+Fzz6NmH2Cwhx4CQ98N9GSbTg4/XhB2U6ARH8EM+kw/Xl0DbQxHGGCQvWwiv6Gir4tu0V6aNUAdWf1tI2zvKWsQlqDpW6XE9F79Aks6U+9INVFRMm6lTaabzewiVq43LQu2rrNverCp09emZTTCgYD6mm11b9kkx0j9FMLfte1P7s7VD287EvUMoS8HVwTt4z+LKcgSPgzCfCFvDvatBmdB3HbWUGPezRUNSL4i0PCspIFHHLJV5KyDU7aCkYmlm7uTKPTK5ai3DWZkzkuyuBIIB67onVmydhKs0YdgUi4SsTRo1ZYraGs EckIE0yC PBBFSGXQ+CuvjODFWUzG9WXzUqogMp9RYYnkhUEr77wMbGLLoImROhol3A0cut/NpAMIQREyYy1JNDKBQZfBDuX4yj40ftPAUA5tx2PqT03kAmsHKmmykL7xBlkftEodfJLdr0S4UqUCBN5OhIWysEvwFXPCoikWyzrsEjkAwlZMNseKj72gFiPTLZG2uPUPvX9veQ1fVtNiKssNXkq4Kf8t4aKLAHZMaX6uinS1E1lE0MQOEmGxtrO1Ic9OoQY2mPrzI 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: on 8/15/2023 4:53 PM, Baolin Wang wrote: > > > On 8/5/2023 7:07 PM, Kemeng Shi wrote: >> We always do zone_watermark_ok check and compaction_suitable check >> together to test if compaction for target order should be runned. >> Factor these code out for preparation to remove repeat code. >> >> Signed-off-by: Kemeng Shi >> --- >>   mm/compaction.c | 42 +++++++++++++++++++++++++++++------------- >>   1 file changed, 29 insertions(+), 13 deletions(-) >> >> diff --git a/mm/compaction.c b/mm/compaction.c >> index b5a699ed526b..26787ebb0297 100644 >> --- a/mm/compaction.c >> +++ b/mm/compaction.c >> @@ -2365,6 +2365,30 @@ bool compaction_zonelist_suitable(struct alloc_context *ac, int order, >>       return false; >>   } >>   +/* >> + * Should we do compaction for target allocation order. >> + * Return COMPACT_SUCCESS if allocation for target order can be already >> + * satisfied >> + * Return COMPACT_SKIPPED if compaction for target order is likely to fail >> + * Return COMPACT_CONTINUE if compaction for target order should be runned >> + */ >> +static inline enum compact_result >> +compaction_suit_allocation_order(struct zone *zone, unsigned int order, >> +                 int highest_zoneidx, unsigned int alloc_flags) >> +{ >> +    unsigned long watermark; >> + >> +    watermark = wmark_pages(zone, alloc_flags & ALLOC_WMARK_MASK); > > IIUC, the watermark used in patch 8 and patch 9 is different, right? Have you measured the impact of modifying this watermark? > Actually, there is no functional change intended. Consider wmark_pages with alloc_flags = 0 is equivalent to min_wmark_pages, patch 8 and patch 9 still use original watermark. >> +    if (zone_watermark_ok(zone, order, watermark, highest_zoneidx, >> +                  alloc_flags)) >> +        return COMPACT_SUCCESS; >> + >> +    if (!compaction_suitable(zone, order, highest_zoneidx)) >> +        return COMPACT_SKIPPED; >> + >> +    return COMPACT_CONTINUE; >> +} >> + >>   static enum compact_result >>   compact_zone(struct compact_control *cc, struct capture_control *capc) >>   { >> @@ -2390,19 +2414,11 @@ compact_zone(struct compact_control *cc, struct capture_control *capc) >>       cc->migratetype = gfp_migratetype(cc->gfp_mask); >>         if (compaction_with_allocation_order(cc->order)) { >> -        unsigned long watermark; >> - >> -        /* Allocation can already succeed, nothing to do */ >> -        watermark = wmark_pages(cc->zone, >> -                    cc->alloc_flags & ALLOC_WMARK_MASK); >> -        if (zone_watermark_ok(cc->zone, cc->order, watermark, >> -                      cc->highest_zoneidx, cc->alloc_flags)) >> -            return COMPACT_SUCCESS; >> - >> -        /* Compaction is likely to fail */ >> -        if (!compaction_suitable(cc->zone, cc->order, >> -                     cc->highest_zoneidx)) >> -            return COMPACT_SKIPPED; >> +        ret = compaction_suit_allocation_order(cc->zone, cc->order, >> +                               cc->highest_zoneidx, >> +                               cc->alloc_flags); >> +        if (ret != COMPACT_CONTINUE) >> +            return ret; >>       } >>         /* > >