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 88A9FC25B75 for ; Wed, 15 May 2024 08:17:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF3086B0362; Wed, 15 May 2024 04:17:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D7A9B6B0363; Wed, 15 May 2024 04:17:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BF5476B0364; Wed, 15 May 2024 04:17:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 9D08F6B0362 for ; Wed, 15 May 2024 04:17:48 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 103251207E4 for ; Wed, 15 May 2024 08:17:48 +0000 (UTC) X-FDA: 82119926616.18.F74A476 Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) by imf01.hostedemail.com (Postfix) with ESMTP id 16D1140012 for ; Wed, 15 May 2024 08:17:45 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=h2W97B1d; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of huangzhaoyang@gmail.com designates 209.85.167.41 as permitted sender) smtp.mailfrom=huangzhaoyang@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715761066; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=bj6izB1xCJw1GZWlAcK8e0ry0yqw0jDJm2ygPS5dAv4=; b=p+B01HkuTdViv46HH8KSt60MAlxaZWkc6fxWH+hXtBcVa7/ZaopgZ+daW7RFcvjGhSLJMC 2eiggyTMb6Z5N7mT86w8FrXFi2Xet6LYrZF+Yeot5bPiL/NxHqMrNkW3rS5/1i7ca5TT9P ivTd7g7LbKJJemV/Uob8LL+RxT0Exwg= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=h2W97B1d; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of huangzhaoyang@gmail.com designates 209.85.167.41 as permitted sender) smtp.mailfrom=huangzhaoyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715761066; a=rsa-sha256; cv=none; b=fJDFZQ95UF7sAq5HWMJ4K+w29K6bmCjcY4ImbNV5s2EWyDumCueXWxnicTkKyHENB1KulT 59FD6VN0n5Pixu5icnusHWAWLbe2/8C3/r36VzDkgzjo6WU0d1MEBJ8gct3VHGt21IqyYo m6z6+bPJxa+boc+AdkD/gj6fgFEMzSE= Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-51f57713684so8245792e87.1 for ; Wed, 15 May 2024 01:17:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715761064; x=1716365864; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=bj6izB1xCJw1GZWlAcK8e0ry0yqw0jDJm2ygPS5dAv4=; b=h2W97B1d2i8BwOW9N1ipxHUSRWvKR5QKvgZr4eO1hrqHhBRY7cHTeF1etjf9Yi3Oi1 v51OHi/o834itQJPGFWGs03yAVBjA9rxCHAmKPcdns9tGTFLWuG6lPggK+nJHFtSfn9Q 5S2+FPWqkn/Q/lKpf3tArEP6f5mXxlRcq2KfDCR76j9vFOBl5xSbMgdbxI/A8H9TZ51J qtefQ28oHSOyFSzzbVjGBw4pbnUaSP+R5VOdgT5gw2S8OaNIA2PgAgKrCRNdK4BjK+2E vs7ayROUjUm/Xg1cNb8ZFELQye7i+orgASfL63PDVMTMLJ5CH471UR+d6zyHdZjOMcN2 1PpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715761064; x=1716365864; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bj6izB1xCJw1GZWlAcK8e0ry0yqw0jDJm2ygPS5dAv4=; b=Ar1k5SbRpFuLlzfGuQQ5rQINZRUs1vXRo+uMwGpnLJi7Pd93A/J6Qb59S4DpqYxYuy uKSoUsPLV/t5RbkYvigOju1EV1BiTPC/JEHQmjJcBQVfqvcDB52w4ESvdbqZN++WLRPz E2s/Dqp92XPsBx0aGHctjvDdmL7l9ZrtR/BdjWA6rqoA4AkUVXDjWCkcIoLCXAwtbMu2 fKan9z68ob1PI6dwxAmEfHahACbQBNRzPTAYhJxHAEBg27tOEf2T6sp59p9WfX5Hn4no bLSp6QLPuOgDrdW7lJ9oF4fFyxdIKFZcgMy/DHq23kh/G63k0cqw3raxGncZT3216Y/f TbNg== X-Forwarded-Encrypted: i=1; AJvYcCX4T0ksSTxuYIBMOh49OIL6E2KMkmlUNRcelmc5etN7oHHYlTfLFl0yt1S8UlolDzM2VZpyClLGIsDicSxIdBgFfCI= X-Gm-Message-State: AOJu0YxhsiBiTFkTOcLUIGonNuLFu8tAXx7nY1IEgOXlqQY62L3z362m GSEyuwJ3B4xLujufuA1Yzq3c7doEBJ/JtMwV2CI/brXx2VvTswYvqwNPoJibqeO9x8g84FI5I7d +AdbTJVSG6dSyaRdV3UU90X2O6oA= X-Google-Smtp-Source: AGHT+IHzlN7O1yeX51A2QH0c/hRDuBbMvUd+6sXdbSmMrT5WjGn8ZJGvks3a2Cbi+gZdoawSByRjhAf2EvCw8I9UD50= X-Received: by 2002:a2e:9959:0:b0:2d2:dac3:90f with SMTP id 38308e7fff4ca-2e5204aef5emr98481421fa.52.1715761064157; Wed, 15 May 2024 01:17:44 -0700 (PDT) MIME-Version: 1.0 References: <20240515012350.1166350-1-zhaoyang.huang@unisoc.com> <20240515012350.1166350-3-zhaoyang.huang@unisoc.com> In-Reply-To: From: Zhaoyang Huang Date: Wed, 15 May 2024 16:17:32 +0800 Message-ID: Subject: Re: [RFC PATCH 2/2] mm: introduce budgt control in readahead To: Tejun Heo Cc: "zhaoyang.huang" , Andrew Morton , Matthew Wilcox , Jens Axboe , Josef Bacik , Baolin Wang , linux-mm@kvack.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, steve.kang@unisoc.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 16D1140012 X-Stat-Signature: yjyziupff99gxn9nazn4rcuwhy5umur1 X-HE-Tag: 1715761065-189147 X-HE-Meta: U2FsdGVkX1+Sp5pctd1mt1ayGWwKQ6Vt6C0Mi1gHS3TsqcHv0rSn138MwtCJ0NFihURjTovxt+J6G3qhOFhQSpuFea639023rXeCIgFlUE2FWy54bdQlGtYlo3dSCXos608cgAxAofQitOBLNkHjeAKoUE3yeUmcy0zCCh3SeEu2iQCDWOtn+WXX+yVfWRxsqGU/D6TTAeYBlpeiromrc1HFrxwac105JBK4YoPBEhz86jvDm8YRcLyWOuqrncQMT9yy2c7XuRVZYc9x8zKAf6w3Qp5yqan4fxdcc0KJMOuaH7ESH/Zak1qmA8oc2dysdW4fjUqG1kChmE3GqA0mXDkxK/bPypCY+M4U1xwMDkhjUlDFQEN85ouehU0PJoK25Y3D9PDiW5oekin468LPca2MzKGt7WKqq0MCUSbQdfC0ndUvE7nKguctZdV+y7y/S5W+9idKllMWSLMEiUHpm7ZUDLepR3U9fayULeZq0zXdLamFWzvx2fxTA07xsL0qddWCwt8yC7xD4/5IC722N+UVFvpZ8zljRT9rpOoPlxiBGZ4qZnS0Ou3b4kyN1BufR2NIEYeC6TJKzSgz7CGtneAo+1d0suFkdyn96EI8P8CPEsScviwJUDWjaRxiFDho7J6fV4AdxAbzzI+zMuxyIcncMEq2npm/1p0rv87DGj/EHT+yX+yPRO+hkYtLmAIJDRARRTaqORMST3MXjKmGu4oWaTs4xjWKq95o5v5E7xDBW3J/sfD+Ke1CO8WiwEyGX8p+KEPsA+XW4DgLrtmwvY+wH3UascPEZsI+hFY3vQ8Rdeh38E9Ouk3armFjFNPEB9oEVYnFC6+zCaCO2cRGaTkX5yNvy82FtEVkuaGe7il+R63oMFUKSmPNhO+e0zL9mVpICBDIb91jfD3+7Ly0gP+1q672ThxulK3drBifnBjHZxXi68npn73jgRrV2HX5jbk78SmG6piW61lXSKu LyAMn6cc MkLRPkI8Q5uh/4dvU+sxN1eVbkc3IO3cR8jXEgq2p1tEXYKz+Qu+dikr6Whv52Ck6ofJ8OwEtlrwecxLyz1DQtIulxIuWo/mwlY7Ngb1ZVMiWsSL+/AKDTzKPADfjaAoRqWQodcMSIo8P3zADKZujiQdRImqK6x9BwgSYRBRuZjjDJnSPFn0jXk59J4nlEsJ2D8oLZ2/2EgtXZUmjoVH97FZRf/LfgrkvxxzdN+rVioZd2kz9OOyoYh5MOfRNnxePHOlRf+MPgON9h+UJ6vfa8j3qVaJvVSIVjs8GI99xRkFGfxJQj9dCuHse/yHsiuRPuNEbJiZRZgGWee0J+XoVVqz8XCtvm35aKPYjZTJvvgCYa57OB7jiyoV1ZPzpOYKzJsOnNtu6hnLsGFJGgxB1fMPHeqDpZVXSdz8J X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, May 15, 2024 at 3:40=E2=80=AFPM Tejun Heo wrote: > > Hello, > > On Wed, May 15, 2024 at 09:23:50AM +0800, zhaoyang.huang wrote: > > +static unsigned long get_next_ra_size(struct readahead_control *ractl, > > unsigned long max) > > { > > + unsigned long cur =3D ractl->ra->size; > > + struct inode *inode =3D ractl->mapping->host; > > + unsigned long budgt =3D inode->i_sb->s_bdev ? > > + blk_throttle_budgt(inode->i_sb->s_bdev) : 0; > > Technical correctness aside, I'm not convinced it's generally a good idea= to > bubble up one specific IO control mechanism's detail all the way upto RA > layer. Besides what's the gain here? For continuous IO stream, whether so= me > RA bios are oversized or not shouldn't matter, no? Doesn't this just affe= ct > the accuracy of the last RA IO of a finite read stream? Thanks for feedback. If I understand right, the oversized RA bios of a finite read will fail by being queued to tg's queue which should be deemed as introducing a drop of IOPS. submit_bio blk_throtl_bio if(!tg_may_dispatch) //failed, queue the bio to tg's queue What we get here is a more precise BW of the throttled blkcg like below, from which we can find the result of 'after' could exactly meet the configured bps value and a little bit enhancement since there are no hung(oversized) bios any more. blkio.throttle.read_bps_device =3D 20MB/s fio ... -numjobs=3D8 ... before : IOPS=3D37.9k, BW=3D148MiB/s (155MB/s)(11.6GiB/80333msec) after : IOPS=3D39.0k, BW=3D153MiB/s (160MB/s)(15.6GiB/104914msec) before : clat (usec): min=3D4, max=3D1056.6k, avg=3D197.23, stdev=3D100= 80.69 after : clat (usec): min=3D4, max=3D193481, avg=3D188.83, stdev=3D4651= .29 before : lat (usec): min=3D5, max=3D1056.6k, avg=3D200.48, stdev=3D1008= 0.76 after : lat (usec): min=3D5, max=3D193483, avg=3D192.68, stdev=3D4651.= 87 blkio.throttle.read_bps_device =3D 30MB/s fio ... -numjobs=3D8 ... before : IOPS=3D57.2k, BW=3D224MiB/s (234MB/s)(15.6GiB/71561msec) after : IOPS=3D58.5k, BW=3D229MiB/s (240MB/s)(15.6GiB/69996msec) before : clat (usec): min=3D4, max=3D1105.5k, avg=3D126.20, stdev=3D641= 9.22 after : clat (usec): min=3D4, max=3D183956, avg=3D120.60, stdev=3D2957= .28 before : lat (usec): min=3D5, max=3D1105.5k, avg=3D129.45, stdev=3D6419= .29 after : lat (usec): min=3D5, max=3D183958, avg=3D124.40, stdev=3D2958.= 18 > > Thanks. blk_throttle_budgt > > -- > tejun