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 62E1CC433F5 for ; Thu, 17 Mar 2022 02:22:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CF8176B0071; Wed, 16 Mar 2022 22:22:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CA83B8D0002; Wed, 16 Mar 2022 22:22:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B6F6E8D0001; Wed, 16 Mar 2022 22:22:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.26]) by kanga.kvack.org (Postfix) with ESMTP id A8CA56B0071 for ; Wed, 16 Mar 2022 22:22:01 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 668EF60CAC for ; Thu, 17 Mar 2022 02:22:01 +0000 (UTC) X-FDA: 79252278042.15.AB0C06F Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by imf24.hostedemail.com (Postfix) with ESMTP id AB6C0180024 for ; Thu, 17 Mar 2022 02:21:59 +0000 (UTC) Received: from localhost.localdomain (unknown [10.20.42.95]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9AxKsxCmzJiVZAKAA--.8083S3; Thu, 17 Mar 2022 10:21:55 +0800 (CST) Subject: Re: [PATCH 1/1] mm/mmu_gather: limit tlb batch count and add schedule point in tlb_batch_pages_flush To: Peter Zijlstra Cc: will@kernel.org, aneesh.kumar@linux.ibm.com, akpm@linux-foundation.org, npiggin@gmail.com, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20220315125536.1036303-1-wangjianxing@loongson.cn> From: wangjianxing Message-ID: <1c2b999d-4924-25c5-cb8a-2be951c8c2a9@loongson.cn> Date: Thu, 17 Mar 2022 10:21:54 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-CM-TRANSID:AQAAf9AxKsxCmzJiVZAKAA--.8083S3 X-Coremail-Antispam: 1UD129KBjvdXoWrKry5GFyrCr17Wr4UXryxKrg_yoWfJFX_ur 4rKF1xX3ykZF48JFnFkw4IqFya9r95uFy3Jrsaq39rtF4jqas3Ars2gFnxXry7JrWfuF98 Cr13Jr43JF4agjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbxAYjsxI4VWDJwAYFVCjjxCrM7AC8VAFwI0_Gr0_Xr1l1xkIjI8I 6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM2 8CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVW5JVW7JwA2z4x0Y4vE2Ix0 cI8IcVCY1x0267AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwV C2z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC 0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr 1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcVAKI48JMxk0xIA0c2IEe2xFo4CEbIxvr21l c2xSY4AK6svPMxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I 8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8 ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x 0267AKxVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_WFyUJVCq3wCI42IY6I8E87Iv67AK xVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x07 j8GYLUUUUU= X-CM-SenderInfo: pzdqwyxldq5xtqj6z05rqj20fqof0/ X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: AB6C0180024 X-Stat-Signature: bpza6ha5idrz8jwiso9hh8jsdz5cy4xd X-Rspam-User: Authentication-Results: imf24.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf24.hostedemail.com: domain of wangjianxing@loongson.cn designates 114.242.206.163 as permitted sender) smtp.mailfrom=wangjianxing@loongson.cn X-HE-Tag: 1647483719-76254 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 03/16/2022 04:57 PM, Peter Zijlstra wrote: > This seems like a really complicated way of writing something like the > below... > > diff --git a/mm/mmu_gather.c b/mm/mmu_gather.c > index afb7185ffdc4..b382e86c1b47 100644 > --- a/mm/mmu_gather.c > +++ b/mm/mmu_gather.c > @@ -47,8 +47,17 @@ static void tlb_batch_pages_flush(struct mmu_gather *tlb) > struct mmu_gather_batch *batch; > > for (batch = &tlb->local; batch && batch->nr; batch = batch->next) { > - free_pages_and_swap_cache(batch->pages, batch->nr); > - batch->nr = 0; > + struct page_struct *pages = batch->pages; > + > + do { > + int nr = min(512, batch->nr); > + > + free_pages_and_swap_cache(pages, nr); > + pages += nr; > + batch->nr -= nr; > + > + cond_resched(); > + } while (batch->nr); > } > tlb->active = &tlb->local; > } Yeah, it looks nicer. I will resubmit the patch.