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 7A19EE7716D for ; Thu, 5 Dec 2024 15:22:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 263A56B00CE; Thu, 5 Dec 2024 10:19:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EDAB36B0120; Thu, 5 Dec 2024 10:19:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E0B2A6B00F8; Thu, 5 Dec 2024 10:19:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 3938D6B00BA for ; Thu, 7 Nov 2024 22:19:57 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CC9B0A07D2 for ; Fri, 8 Nov 2024 03:19:56 +0000 (UTC) X-FDA: 82761471786.01.B2C6904 Received: from mail-pg1-f193.google.com (mail-pg1-f193.google.com [209.85.215.193]) by imf01.hostedemail.com (Postfix) with ESMTP id 7590E40002 for ; Fri, 8 Nov 2024 03:19:26 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="Vrzse8w/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of jimzhao.ai@gmail.com designates 209.85.215.193 as permitted sender) smtp.mailfrom=jimzhao.ai@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731035824; a=rsa-sha256; cv=none; b=4r6jRgQ8LrrOLG0aMEQj+iBGXz2RFGvpP9RfVq6iv0kbBCdsWDph62Hc5Zz/dsPzVWfX8O LWBOATQJ3Qviz0lKqZvLW7CS6l2Yo1eW6DkixHKktZDkv4Dlx2Kww597toditOLc4PGt/T Lp7D8MMEIDHme9XBXd2/XGk2Q3jIik4= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="Vrzse8w/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of jimzhao.ai@gmail.com designates 209.85.215.193 as permitted sender) smtp.mailfrom=jimzhao.ai@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731035824; 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=dSFWQaJAAY4ILwfVQzc5M0r+FjAN96iZg9Zg5lN4R+w=; b=senIHo2jfiaKNilx9AaUTuVa2yH2DjL+4bcKuyblW/aGTG4yYnYTcw6ctWOOxm3BQwwKdM h10I7XWgb3IhazSo6XA0Ur8yQjWpsJiBPS4MCnN3CahVsHoI2c5+/n5cRkkLgbLfzhM51K 9ANs02Th/9Gwy98a6U7Y1bWHu+/fuPc= Received: by mail-pg1-f193.google.com with SMTP id 41be03b00d2f7-7ee7e87f6e4so1227148a12.2 for ; Thu, 07 Nov 2024 19:19:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731035993; x=1731640793; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dSFWQaJAAY4ILwfVQzc5M0r+FjAN96iZg9Zg5lN4R+w=; b=Vrzse8w/msEG35iHVPk+twYXLDqejuaJ0+PnGR2s8odpp1VCRi//73tOpoYUmRi9Ux 900306Sr138eZ9tBqB3hKceZBn8v309qkOuFwc8FqWqFWF5fvPJBO9BIBxAnEWVx/I39 6gyFgiIm84ubIDHP1mrERiaUie8m3rjjog09FzfAmQ0fj85+r4aarVVzbtSSALNDob6L iwRLiezjJLg0fn4Lo7Xzo9L8+ohKiXXn0FWS6PL2S8P8xbHTyJyrMlvZyZ6WkvKs7pYi UWyJog3KXg1DgeTrd7JdKF27qvfo7qPHQwZUhwgJaYYESyoLmsy5veHxSAfqF17IP0Li AN7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731035993; x=1731640793; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dSFWQaJAAY4ILwfVQzc5M0r+FjAN96iZg9Zg5lN4R+w=; b=DY+PmvWjwzfHQT4PX0zBRf//pLL8+hMfZE2Qf3+T8+u0PYvHJCJXUmACh/DrtthywY 8SR7Ynrlsm1PVBdx6qVLL7SQlG5xXmYuhGVyS499bEB4+B0sP9b1PrpBrW4wWDZLB6i1 ODfNJ/EA3wqMDvA9nlDNcHmCNKi7imGG9qkVhbKYO1YBJSV1/XjEIgzD1yYS2sTeE7kY pGPyOftuu/j1GDzrQhA7yHjVXSp7aencxrJmKtRPlP26QHAhfEyirovjCR/aibuVq5I4 RFbsFQPiHvhH1VNBThmHd+TpoXTL7RkVPvIstbFhHfM7GX5kjNlemrgrHa16WcqvNokY hnPA== X-Forwarded-Encrypted: i=1; AJvYcCXx8VdCe2dkUd8XHQSRKYEsdGhaqq3fCGsufRAACr/zwB9qrbHBNMLJo81CSeJie8IuNJjjeW7IQg==@kvack.org X-Gm-Message-State: AOJu0YyO6LCXHIuIX7yk6xgxBsGolBMm8Xj0gmu4aizwcU3NQIk9Qzfl oNTisypYWObSmWbWsVl0W2EYflsrE2taTNKImC18p8uIGkPuUpp+ X-Google-Smtp-Source: AGHT+IEyi1BroO3MM6ueF/NWg8C1s7OrC7oq4zerpDSbQA9ujJLqH7YMKCRXhwmAIKfACGxTa43FDw== X-Received: by 2002:a17:90b:2b4d:b0:2e2:bd7a:71ec with SMTP id 98e67ed59e1d1-2e9b16e57bamr2033500a91.2.1731035993401; Thu, 07 Nov 2024 19:19:53 -0800 (PST) Received: from localhost.localdomain ([43.154.34.99]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2e9a5f90cf1sm2350097a91.30.2024.11.07.19.19.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Nov 2024 19:19:53 -0800 (PST) From: Jim Zhao To: jack@suse.cz Cc: akpm@linux-foundation.org, jimzhao.ai@gmail.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, willy@infradead.org Subject: Re: [PATCH] mm/page-writeback: Raise wb_thresh to prevent write blocking with strictlimit Date: Fri, 8 Nov 2024 11:19:49 +0800 Message-Id: <20241108031949.2984319-1-jimzhao.ai@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241107153217.j6kwfgihzhj33dia@quack3> References: <20241107153217.j6kwfgihzhj33dia@quack3> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Stat-Signature: peyd1wpjxmpzm4yx1uaz7oahes6zp9ho X-Rspamd-Queue-Id: 7590E40002 X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1731035966-310724 X-HE-Meta: U2FsdGVkX18c378oMNrWOpeOppnsTqO2URNKCLZZX36A9FynJM7zJl1N77RYGQlbjnOp8EhOP4wZl61GO2JvHibuzU2gtfhDFVh7YRhaGcnQaf6Fs2GQCA9ASnf9HHHR1WqZedVnVdYrJxI6RgHmWhHQm2/YeA2Xixs1tR0tsfBmPJYtRzLfnEAaaGMEMmzxvb67/LFntPAQEp+Swps6VfcAOtvVqVEei/pguXWROVxrdg0RKZTowGeSPU8UP2sU4OfPcu0PFVQ+i7sDlY9wIS1Ojkh99RejTzariR5Qm2IaN2513Hp11dU0Btd1fl3ajscDQctDRhcXHelMaY3TolpVFnTnUQDgFmMsKgHusA7p0ppfOVQodyIHNyZXDreHobFXxPc9/QQFL59vNnPUes6oDJ9sCscs2rhP/gfUJWzR5Pu7zvbFVNaGY4tQo29ZAQbblBBjkzH6vLOFE3itD3h6YuIxYzM8k2w+vFNr/le6anq3oP/WyxwB7GrAbLsdM1AgVuwtP/QVxpqyg7s1hb3Ra2MzbefowaU3FRBIBQW7YYRLrs2YQ60Wok2fIAI/TW2UuIUpev2hpYOQvqdHMxxFKJr2Q8Bqz0Rdgw0Gq3cKlZViQ8BQpcdc+TqF2ixqeWAudMPbmorADCii6mOxcYkIglw3ymzG3Em6+8gbC96mkD6gFqai+OsmxIqP4qbN27Z8iO3h0aMuInQDmaCgvs36Vjkb4v1AyN1dUY95W+AGyH+KFLvbQxTYMxixm3y3Zhiiex4ButilTh5xUrxfjUCTEstZO7p6eTRM0ON74J7CdwQ/R/S2nU/Z1htGp2E68spJC0pDak8hfbgR8V4NYeDC2q4rpRxZut5EYAdTIMXB/CmhTAJHMBHmrZZpRUZXM2tQE6wFjOf6jWL+QjPEmGfpIQcXrArviBQxG8SI422ZSF7qpctB3exDqbmEMknQKO+oKAFKoHelOvOaita PNv5zdtO nBt8R6e3cQnUzJZyMTrk1uwlGC9M/ysWUsX0llDEj/pU7sSqe1ZSH4TpOliiQiNd5mZ8CITL6oKS0ctV8Q9Q04zZ08peD0jrgBtw93+yfTGZrKqae4iuWt4QmS/VM1bnzJph7oN1i1U2Vyh5ZpYpPjhki2SQl+2rE53FqExVemmtVPut3mdC70L2SKqT9FYZXmj2wPrKkY36e9lCunNLPDlaeidm8/S8X0LEJedWLO+6MVQPZAv2r/qDa+qQ7TRhbGSVIZVQCqb12MEZLUBdNJr6/0/Y00mGI8yKXOULjyjXl6oHu8BjLWay6XIGvhlxDOwTf6KmFQN//0oajfSiD3Lk7nrsrkwyFzBwMGqR0ZQD3EcJydzCA4Yrdoj/eNdGyCx6j4gmJIqiR651EvO9AP6jo8qH2J4X4t3p9yzrz2NncuM55ZYkg1e42C7u9mtnirg+rNZwqOQiPtmrtkL9x041wpWWuHE2gipv7od0dZiOhXI8C6x89tBiOErFPoFnNgdxQRikyyiXf4VIB7R30RRiLHYGx1TIbbkeEe+HAgodnqetkfAArzKwJjGMPIcJUSx08jp3cH/OxQmObgwxEGEuV6+ggoG2/f3tLDE7EkKAjTi4etN1DT0p6NSmV4JW2uSgGgG26oPtRFD8R7ioZgEe+B1yDSyNasRuN5AEZMXuzdjc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.018426, 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 23-10-24 18:00:32, Jim Zhao wrote: > > With the strictlimit flag, wb_thresh acts as a hard limit in > > balance_dirty_pages() and wb_position_ratio(). When device write > > operations are inactive, wb_thresh can drop to 0, causing writes to > > be blocked. The issue occasionally occurs in fuse fs, particularly > > with network backends, the write thread is blocked frequently during > > a period. To address it, this patch raises the minimum wb_thresh to a > > controllable level, similar to the non-strictlimit case. > > > > Signed-off-by: Jim Zhao > > ... > > > + /* > > + * With strictlimit flag, the wb_thresh is treated as > > + * a hard limit in balance_dirty_pages() and wb_position_ratio(). > > + * It's possible that wb_thresh is close to zero, not because > > + * the device is slow, but because it has been inactive. > > + * To prevent occasional writes from being blocked, we raise wb_thresh. > > + */ > > + if (unlikely(wb->bdi->capabilities & BDI_CAP_STRICTLIMIT)) { > > + unsigned long limit = hard_dirty_limit(dom, dtc->thresh); > > + u64 wb_scale_thresh = 0; > > + > > + if (limit > dtc->dirty) > > + wb_scale_thresh = (limit - dtc->dirty) / 100; > > + wb_thresh = max(wb_thresh, min(wb_scale_thresh, wb_max_thresh / 4)); > > + } > > What you propose makes sense in principle although I'd say this is mostly a > userspace setup issue - with strictlimit enabled, you're kind of expected > to set min_ratio exactly if you want to avoid these startup issues. But I > tend to agree that we can provide a bit of a slack for a bdi without > min_ratio configured to ramp up. > > But I'd rather pick the logic like: > > /* > * If bdi does not have min_ratio configured and it was inactive, > * bump its min_ratio to 0.1% to provide it some room to ramp up. > */ > if (!wb_min_ratio && !numerator) > wb_min_ratio = min(BDI_RATIO_SCALE / 10, wb_max_ratio / 2); > > That would seem like a bit more systematic way than the formula you propose > above... Thanks for the advice. Here's the explanation of the formula: 1. when writes are small and intermittent,wb_thresh can approach 0, not just 0, making the numerator value difficult to verify. 2. The ramp-up margin, whether 0.1% or another value, needs consideration. I based this on the logic of wb_position_ratio in the non-strictlimit scenario: wb_thresh = max(wb_thresh, (limit - dtc->dirty) / 8); It seems provides more room and ensures ramping up within a controllable range. --- Jim Zhao Thanks