Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp4821807pxb; Wed, 20 Apr 2022 10:41:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzreGf4H1PJRdX8c6v3tKAjFKnAD3ADBL85Zbsyqk9mLCONHdtJ1sLUgU82traxMbuu0JTw X-Received: by 2002:a17:906:7943:b0:6df:e5b3:6553 with SMTP id l3-20020a170906794300b006dfe5b36553mr19434845ejo.398.1650476513898; Wed, 20 Apr 2022 10:41:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650476513; cv=none; d=google.com; s=arc-20160816; b=L7V2iEHwMFrZrZr26zY1/0hGnBdaCybEU9/QR2U0YAZuvc62Yh+7U4hb5wgYYrt/4i dlqlTX9boBlaW3SvBXDT+vxh/X2kgwd9Rd+dXYAqioU6mPTapwMOitKOww6Pz7jqW/ms OLHMkm7mMQx+8a38vUNZoGqSDHR8wmixjTHphXQ3aDKQSaUAfSlN70VlzwGkzngczLxO S9Fk2p3cDYy3ENtwerCCLNFl+XAjIdai0B6dfTlMANXTeGSmqROyxlPpUGsLn+Xh8PBc Z54uMrrUuDrSo4NJrBlQNzDyRkqTMY3YaHWWPT24yZTldAZ3OOyyeJEO4A/od3CSR8dO togw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=WoSSB6D4okQIzxYw590H8J+GvX7tUDqFDdL3NG2PVow=; b=lLOIDgZkkcHXnRMe+OGlRXmloyY3M3TdehxRjWu4/N6KRvkwW4lJWg5Gxm0uLrrrS+ EhRWuLXIbzOjOEr4NdyDRqHcHVbK4hKb8xMb2gzPCFkazj2ymbH1l/GkG/Ms+YLbgx6s 4LmgkyDqNm7p5WquD273Pum6vn06/VkmqddIkfX/7cEKqss3sgOF5569kQobqzn0MJaz E3rjqS7fx/HnfsqVyA4AqgpNyPjBD4rcfZzUt9TU14b4odAfiMlhC0KgNCK5NqQqBgpV 47rec9bN6awJwM1Z9TsOhkb1/PC+Wjl9HCuOSSmo0wGivaQyUH1Xj6v6OR/ssk0xpPnQ 5AIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=Y0Azna+1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fq22-20020a1709069d9600b006e87061df8bsi2095223ejc.714.2022.04.20.10.41.27; Wed, 20 Apr 2022 10:41:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=Y0Azna+1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229959AbiDRWEf (ORCPT + 99 others); Mon, 18 Apr 2022 18:04:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54972 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230021AbiDRWEe (ORCPT ); Mon, 18 Apr 2022 18:04:34 -0400 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 815B72127F for ; Mon, 18 Apr 2022 15:01:54 -0700 (PDT) Received: by mail-lf1-x12d.google.com with SMTP id y32so26266236lfa.6 for ; Mon, 18 Apr 2022 15:01:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WoSSB6D4okQIzxYw590H8J+GvX7tUDqFDdL3NG2PVow=; b=Y0Azna+11Ygy4jE/LbD9k9ppPCkOldalF7CL1XSOIqHdcVg6oz83IRXODvqMA1a+NN tChz+i0D6XlNe64llHhy8KDYypWThZpTpcoIfiAWaSpjbUV4w2FPfoDJ3w1oXQCKwbuq pL6Tlwr0L738RSs3Y3jedLpure8WgxCDfUscs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WoSSB6D4okQIzxYw590H8J+GvX7tUDqFDdL3NG2PVow=; b=H0NfT+Txf82dJldMyErh001lRdrOv1fPHuryIzPQPu7ltNbNl1RktaGC8VvNfnXmaF YUDJmhXllscGy25UhYXe0bWcY1JyHmWiB1lrk0X0ZVEtfq5A51DL6bH40TjcZHlv/9ZM jxHoqzvk5QgJ/2fE/tt85yytmHB464npdO7RKZxtzLVUjTwR0BnJsjbdnTnkwwijOm+K aA+CpB9Zd5sxio7383bKD/4rjOIWMuaALoSkdk8ZpJGgq34Z1ubPP0kGzZbkYKZnBW1V J+ht36xc7dXbwxRmH95Q4JYfm7Ldfg2c738QC5FSc3gb9QRXTeyk2W5igqWhFQ948GzJ 1sIg== X-Gm-Message-State: AOAM531qoAREL2R+qXWO12ksUmEULUFHWitUfAF9vWYnC8/fnduZO6yz z9dD8kMy/Jf83JKSOcAxZ39qXZCaiaYZndlzVwY= X-Received: by 2002:ac2:4c4d:0:b0:44a:4d7e:84bf with SMTP id o13-20020ac24c4d000000b0044a4d7e84bfmr9158263lfk.634.1650319312569; Mon, 18 Apr 2022 15:01:52 -0700 (PDT) Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com. [209.85.208.181]) by smtp.gmail.com with ESMTPSA id n7-20020a196f47000000b0046d1859fc45sm1328614lfk.102.2022.04.18.15.01.50 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 18 Apr 2022 15:01:52 -0700 (PDT) Received: by mail-lj1-f181.google.com with SMTP id y11so789395ljh.5 for ; Mon, 18 Apr 2022 15:01:50 -0700 (PDT) X-Received: by 2002:a2e:b8d6:0:b0:24b:6b40:a96a with SMTP id s22-20020a2eb8d6000000b0024b6b40a96amr8492009ljp.176.1650319309981; Mon, 18 Apr 2022 15:01:49 -0700 (PDT) MIME-Version: 1.0 References: <20220418092824.3018714-1-chengzhihao1@huawei.com> <587c1849-f81b-13d6-fb1a-f22588d8cc2d@kernel.dk> In-Reply-To: <587c1849-f81b-13d6-fb1a-f22588d8cc2d@kernel.dk> From: Linus Torvalds Date: Mon, 18 Apr 2022 15:01:33 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: =?UTF-8?Q?Re=3A_=5BPATCH_v2=5D_fs=2Dwriteback=3A_writeback=5Fsb=5Finodes=EF=BC=9AR?= =?UTF-8?Q?ecalculate_=27wrote=27_according_skipped_pages?= To: Jens Axboe Cc: Zhihao Cheng , Ingo Molnar , Peter Zijlstra , Al Viro , Christoph Hellwig , linux-fsdevel , Linux Kernel Mailing List , yukuai3@huawei.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 18, 2022 at 2:16 PM Jens Axboe wrote: > > So as far as I can tell, we really have two options: > > 1) Don't preempt a task that has a plug active > 2) Flush for any schedule out, not just going to sleep > > 1 may not be feasible if we're queueing lots of IO, which then leaves 2. > Linus, do you remember what your original patch here was motivated by? > I'm assuming it was an effiency thing, but do we really have a lot of > cases of IO submissions being preempted a lot and hence making the plug > less efficient than it should be at merging IO? Seems unlikely, but I > could be wrong. No, it goes all the way back to 2011, my memory for those kinds of details doesn't go that far back. That said, it clearly is about preemption, and I wonder if we had an actual bug there. IOW, it might well not just in the "gather up more IO for bigger requests" thing, but about "the IO plug is per-thread and doesn't have locking because of that". So doing plug flushing from a preemptible kernel context might race with it all being set up. Explicit io_schedule() etc obviously doesn't have that issue. Linus