From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31674364EA3 for ; Wed, 4 Mar 2026 09:27:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772616424; cv=none; b=MTsfVZ+Tq9T1oepul3ILfqL4mg18sBI+/UseRgnI7jUeaxoub/Quj/fkaGvdPzd+agTVCMKw41kfI9DI/Ro6YwRBhJVAbbc2qri9a7jRmCS4cUElZCAEEgupEJh1/YQ+8RrGirZLihx4owIVtV1kwXkyPqUq2jQYOl9NNrzYNRY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772616424; c=relaxed/simple; bh=mAnhdJYSeoR4SfAmaUeoxXWC4TIubB0JASaDYuIF1bA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=e8215HceGVRmlLyH9czpPDsccvn8H0cbY7B5CEzxrGXGDyoXU4LhOm/cLHf7YbsKPlFob313g/ph2z73rNDFYd8ayCOiejlMR3TJ6ai6ESSr+AoU12BDKKeq64HOASqKos+EQM2NHI8oX4ILdZPR8K2da458VZy/vT4zdKvG6G4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=ReoUBytf; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="ReoUBytf" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-439c9eb5d36so276001f8f.2 for ; Wed, 04 Mar 2026 01:27:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1772616421; x=1773221221; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=8twELACDM9U64paumVt23gtTPqKgol7vS8inY1FSiaU=; b=ReoUBytf4+Xd29h6EiaPFq6rABFSBAYbmxOIOS7H2d4iLKlptZhPAgq3L364GNPrue VFCPcXv/iMpQjQAktYjvyBJWuzhjKbPCXRBrk9pLancehkwndVhyQhwA6YzcpEq1jP0q 3nKwXMBkCQzbV0evJ6ImQVtrypUAYulsPwt1+0DQfFoIEAYzy81B+/z+o4qoFYlMqaAT ADWbr+P6vLpcstSwbKh3toh3X2Jrt0LUSC1ilLUPz5udxt3U2/7t3/NnlQySIhuSnc3g fpKLm7L3fDhVrmIPtcvpWGj4so2tboHWLMajCRVKuLbmjNuP5nrn5J3z7eUU/as2qgBV mJ4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772616421; x=1773221221; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8twELACDM9U64paumVt23gtTPqKgol7vS8inY1FSiaU=; b=sDoBWG9E0esy1DduOYmutr+lBFZiGs3reV4jsAmHXLVII1WqfLX254COJnKqXvJrQ8 o2v0cj5F4F9fqZm/TwBvBme4kJUqG7cYPvBEDaVaB1nYGBeTza3Or/1RyaDrGLZgrxjt vssCeDIX+Rkv76j1d6vSOt+gWOKNoqsV+/lkOVgaJ3VhFQl1my/T12jmtVHHoTnE6Qkd eUOZ3LqTYdjMYeL5vnq52Vwb9TJRvfe3TYMLhP1ox+7zkCpBcxJkdwoRlaJf+K6GoW1D FvJMrpXujRB95mVn7cXalAfGbmj2Y0NXTzCZe+8VkWhomeY3P4Qgsk43SdENOq0oXkjN mLig== X-Forwarded-Encrypted: i=1; AJvYcCW7dtDoUfKLVyPJHUoImFQeld/Dhr7Tt2+C2+MkQtt71IGuQ44hLpQI2f5sku1xYnvRpvncnd30xZ/kkTY=@vger.kernel.org X-Gm-Message-State: AOJu0YytWYeLOuEWSAawzLMgkRadDN3g669BRApzxEZHmLF5I5XN/VSV YPJSLiu7gUlv69lVqFrI54R8KXs0ADYKcrCOSeKMzldbj7N/ecTvU0giq0eHH0x7WFU= X-Gm-Gg: ATEYQzyGlLoTuX9ebaHnGjt5iofiFYCuuflScJrSZ5+8k4AzYAjynRwv/aEZqxjZYuc sHF2Y3GKaBzD85xM4AC5XS5kZGh0RLTiRNhz+j6pF/4x9PGSJ75CdhaagrcYov6s+Bx6/UzrqMj r5MHr/AdAF6+Pml2dHcYbA+TkqebVOBK3d4sEyd9G/r24xugxoWnsGVTyDvr1+8B1ouVzj0bolj guOyajoXpFYk5kti/PEq0LYiH4OjGZWKD/nFUO0WlU2T/0jkRFpFJlEtG46XYH9h88CIEmlDG33 MB4nYeNNIQVvGV7dx2bkXLFR4PLhSd29+QT7ks06z2bPAG5OCY3clh36Ze9tw96+vYjbdXtUal7 nQr85+l8hMJrRYahhS3Q6yD7/OhCj6+YgBDQxZUXve1ZnzsaPGRE6r9yYK4jGOkumVxg4JyjhxW CAWS+xy/+c4gc3VYLHoj8yOTVxFRfD5I7mB5LXQozl5A== X-Received: by 2002:a05:600c:528e:b0:477:7f4a:44b4 with SMTP id 5b1f17b1804b1-48519828e36mr21546175e9.1.1772616421409; Wed, 04 Mar 2026 01:27:01 -0800 (PST) Received: from localhost (nat2.prg.suse.com. [195.250.132.146]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439ba2a58dasm17129264f8f.27.2026.03.04.01.27.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 01:27:01 -0800 (PST) Date: Wed, 4 Mar 2026 10:27:00 +0100 From: Michal Hocko To: maximilianpezzullo@gmail.com Cc: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Terry M Subject: Re: [PATCH] mm/vmstat: reject zero vm.stat_interval to prevent busy-loop Message-ID: References: <20260304-mm-vmstat-reject-zero-vm-stat_interval-to-prevent-busy-loop-v1-1-c03c9555ff15@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260304-mm-vmstat-reject-zero-vm-stat_interval-to-prevent-busy-loop-v1-1-c03c9555ff15@gmail.com> On Wed 04-03-26 08:27:38, Maximilian Pezzullo via B4 Relay wrote: > From: Maximilian Pezzullo > > Setting vm.stat_interval to 0 causes excessive kworker CPU usage > because vmstat_shepherd() and vmstat_update() reschedule themselves > with round_jiffies_relative(0), which resolves to an immediate > reschedule and creates a busy-loop. > > Add a custom sysctl handler that rejects 0 and restores the previous > value, similar to how dirtytime_interval_handler() handles > vm.dirtytime_expire_seconds. > > Reported-by: Terry M > Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220226 > Signed-off-by: Maximilian Pezzullo > --- > mm/vmstat.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/mm/vmstat.c b/mm/vmstat.c > index 86b14b0f77b5..6eeb4341b215 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -2114,6 +2114,18 @@ void vmstat_flush_workqueue(void) > flush_workqueue(mm_percpu_wq); > } > > +static int vmstat_interval_handler(const struct ctl_table *table, int write, > + void *buffer, size_t *lenp, loff_t *ppos) > +{ > + int ret = proc_dointvec_jiffies(table, write, buffer, lenp, ppos); > + > + if (ret == 0 && write && sysctl_stat_interval == 0) { > + sysctl_stat_interval = HZ; > + return -EINVAL; So you update the value and report the failure. Nope, this is not correct way to handle that. Either tou check the value and fail before any side effects or you correct the value, report that to the log and return success. I would preffer to not do that at all. Setting any arbitrary small value will have some side effects. This is admin only interface and we expect those do know what they are doing. NAK to the patch -- Michal Hocko SUSE Labs