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 2C70CC6379F for ; Sun, 15 Jan 2023 01:52:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2C27B8E0002; Sat, 14 Jan 2023 20:52:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 272268E0001; Sat, 14 Jan 2023 20:52:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1612A8E0002; Sat, 14 Jan 2023 20:52:27 -0500 (EST) 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 071428E0001 for ; Sat, 14 Jan 2023 20:52:27 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id C58AC14072E for ; Sun, 15 Jan 2023 01:52:26 +0000 (UTC) X-FDA: 80355358692.02.D6EF8A8 Received: from r3-25.sinamail.sina.com.cn (r3-25.sinamail.sina.com.cn [202.108.3.25]) by imf10.hostedemail.com (Postfix) with ESMTP id DCF33C000D for ; Sun, 15 Jan 2023 01:52:20 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf10.hostedemail.com: domain of hdanton@sina.com designates 202.108.3.25 as permitted sender) smtp.mailfrom=hdanton@sina.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673747544; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h/nqqWkjR0bB6KeY3W/4W00w+Fl1ld0CY8Ff8YqqNcw=; b=EwmLh8mNkVWFm1/zr/K+vS3rIh1VS5c/BzxhFRvnkIy3GvdFx2xX3WYy4PtVL/h/ebXXWa UH2ikDZIrZwJGuwBfsmM7oYnkct+x91GF4wEJb2TTtmB51HWvVMOWFECufd5h3OAsTUipu iXrcV2Dd/mfNrDjF20mC85FPq4ibaIk= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf10.hostedemail.com: domain of hdanton@sina.com designates 202.108.3.25 as permitted sender) smtp.mailfrom=hdanton@sina.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673747544; a=rsa-sha256; cv=none; b=lsDSSGS73zVCTg0VLeoZNBNnV2rnUktZPCgApJBQLAw/xJZjstvCdMOUwjffXTWr1iSziU Z4v2ScCbx644/XkT5c9C8IRcz/wgQVKMZ5aXQwU99uKF7LskpBEDec0lEl9igfQao/46kW leGftyi2v32iHf+pF5JZJNQdisdNNbs= Received: from unknown (HELO localhost.localdomain)([114.249.61.130]) by sina.com (172.16.97.23) with ESMTP id 63C35B8F0000149D; Sun, 15 Jan 2023 09:49:05 +0800 (CST) X-Sender: hdanton@sina.com X-Auth-ID: hdanton@sina.com X-SMAIL-MID: 43376354920021 From: Hillf Danton To: Nathan Huckleberry Cc: Gao Xiang , Lai Jiangshan , Tejun Heo , Sandeep Dhavale , Daeho Jeong , Eric Biggers , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] workqueue: Add WQ_SCHED_FIFO Date: Sun, 15 Jan 2023 09:51:59 +0800 Message-Id: <20230115015159.1417-1-hdanton@sina.com> In-Reply-To: References: <20230113210703.62107-1-nhuck@google.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: DCF33C000D X-Stat-Signature: r4bmdu4umde6dnoq1ge6tzzxp44z5c93 X-HE-Tag: 1673747540-755185 X-HE-Meta: U2FsdGVkX19kTb/YA4swq7RVayJkra4g2LT2xLxyxDYzA9DeC/DuyriX2ARLkllz+lgecJPEaoRaOfPSQZCQmqxmbF8c7Z5iAzz+s+n9NNUUzli5/vL6BEaaYetlwGin9olzsW7AxE1m8u3mwmuTwNnSDpf8PYzB31AyTAuYyIGI3CNDREylD0K4nXuNULNREo3PovIZNvZKR6p2qJipPiXwpv2whntS7ZYeEsp4cXbXC9cWV6fKSnzImzhZkDUsYPV6+YR37qBYhSU02bThnkY2jN+C439PwjXc8t4WpYGB1/ABKF6YI2I6ZH1QLGopkQwpj3bdZVxCJJY0zqs6NkWgbq/GNW7tKTb9UDHzWaLxwrkqsLtbm8StupuBYqpgQmvIVG31cGdDdgRealiorqL513UlcJad7R2dQhJbIU6Al8VMLOy6CEtUg5UMGW5dn5J7mP5lMM6kjEBbqzNvUSgBb6JOO/EVyOcxLGPDJ72YlpJl0nJP+/dGLCfvbo2ghRd2TnQmQ8GtNLziU32XCDh9kkEWXpnSnSyVaigCiRIOtPFgcgJJJuAG4EacMAmbGW+k1OE2uiaGLSHg0R1mMfDDDRpsdrNB7ziMZthV+VXWYdDNRNPNZ44vE+FjePkcL+3+p/nDP61rlE6ED7xzL+I7DkUfnq4Gzc6ryCxEuUL0VjzvlJNeWsG+CocXhcUzd2iB8fBYMOoww15V+UtE+EB6nI+078L067MFLxHYSYIYGN3GGo64VnDZknUpuTJED/h3QHVp681Sg9Hj1Iq8oFi2Yi5jS7i6RNN+rbTY3mRoVFK1YHqdmeizOpwIi8aODXXvSuZpGINiT3h0aC0jPzExaNkuu12u 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 Sat, 14 Jan 2023 13:00:00 -0800 Nathan Huckleberry > On Fri, Jan 13, 2023 at 6:20 PM Gao Xiang wrote: > > > > Hi Nathan! > > > > On 2023/1/14 05:07, Nathan Huckleberry wrote: > > > Add a WQ flag that allows workqueues to use SCHED_FIFO with the least > > > imporant RT priority. This can reduce scheduler latency for IO > > > post-processing when the CPU is under load without impacting other RT > > > workloads. This has been shown to improve app startup time on Android > > > [1]. > > > > Thank you all for your effort on this. Unfortunately I have no time to > > setup the test [1] until now. If it can be addressed as a new workqueue > > feature, that would be much helpful to me. Otherwise, I still need to > > find a way to resolve the latest Android + EROFS latency problem. > > > > The above patch and following diff should have equivalent performance > to [1], but I have not tested it. > > diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c > index ccf7c55d477f..a9c3893ad1d4 100644 > --- a/fs/erofs/zdata.c > +++ b/fs/erofs/zdata.c > @@ -201,7 +201,7 @@ static inline int z_erofs_init_workqueue(void) > * scheduling overhead, perhaps per-CPU threads should be better? > */ > z_erofs_workqueue = alloc_workqueue("erofs_unzipd", > - WQ_UNBOUND | WQ_HIGHPRI, > + WQ_SCHED_FIFO, > onlinecpus + onlinecpus / 4); > return z_erofs_workqueue ? 0 : -ENOMEM; > The chart in [1] shows the change in scheduling latency that is the latency between when the task (workqueue kworker vs kthread_worker) became eligible to run to when it actually started running. +-------------------------+-----------+----------------+---------+ | | workqueue | kthread_worker | diff | +-------------------------+-----------+----------------+---------+ | Average (us) | 15253 | 2914 | -80.89% | | Median (us) | 14001 | 2912 | -79.20% | | Minimum (us) | 3117 | 1027 | -67.05% | | Maximum (us) | 30170 | 3805 | -87.39% | | Standard deviation (us) | 7166 | 359 | | +-------------------------+-----------+----------------+---------+ The change in scheduling latency after this one-line patch for workqueue workers like kblockd_workqueue and rcu_gp_wq is welcome. > > > > > > [1]: > > > https://lore.kernel.org/linux-erofs/20230106073502.4017276-1-dhavale@google.com/ > > > [2]: > > > https://lore.kernel.org/linux-f2fs-devel/20220802192437.1895492-1-daeho43@gmail.com/ > > > [3]: > > > https://lore.kernel.org/dm-devel/20220722093823.4158756-4-nhuck@google.com/ > > > [4]: > > > https://lore.kernel.org/dm-crypt/20200706173731.3734-1-ignat@cloudflare.com/