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 0906EC54E58 for ; Wed, 20 Mar 2024 10:28:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8AA516B008A; Wed, 20 Mar 2024 06:28:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 85B006B008C; Wed, 20 Mar 2024 06:28:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6FAAB6B0092; Wed, 20 Mar 2024 06:28:51 -0400 (EDT) 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 5D2C66B008A for ; Wed, 20 Mar 2024 06:28:51 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 17B0480D5C for ; Wed, 20 Mar 2024 10:28:51 +0000 (UTC) X-FDA: 81917044062.05.C46A490 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf08.hostedemail.com (Postfix) with ESMTP id BBDBA160019 for ; Wed, 20 Mar 2024 10:28:48 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=pgcv9NHD; dkim=pass header.d=suse.com header.s=susede1 header.b=pgcv9NHD; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf08.hostedemail.com: domain of mhocko@suse.com designates 195.135.223.131 as permitted sender) smtp.mailfrom=mhocko@suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710930529; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Uacu9M9JHXgrGZx8T4ZnA5/jeWUYi98hCKExLdiTswE=; b=CF2oa+NuyeiZCWf7a/ATx+8kT5BZMqEoY55ID96JydfBoZ1pc5QsxJNZQiFJDeT1nEzsrx 9oCgoxxpNjdWjG77F/BZYXgRVk/a94yP3V8sIp9w/rdUr36ZWri2Z0JKfTeDMy7KGwkOHN tSFjhxzxiGTeTT6pLQV7YlMUNv6E1mQ= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=pgcv9NHD; dkim=pass header.d=suse.com header.s=susede1 header.b=pgcv9NHD; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf08.hostedemail.com: domain of mhocko@suse.com designates 195.135.223.131 as permitted sender) smtp.mailfrom=mhocko@suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710930529; a=rsa-sha256; cv=none; b=TqPXKKEbVfQjYgcwk6Yur9pRXDLZjLmXPakqan6MuA5D5WMvLrwlTn2e10lcgKcsik51L6 BrAOc7OlLCqAUig0XqgdnmZaxs/BXEk+I1ezyple47pyJXa1xP6WjQxAgh0mb5eKLgzUkR deI+oOG83/7NobOEzgZyWkk1nGwtudU= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id B9C4420CBA; Wed, 20 Mar 2024 10:28:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1710930526; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Uacu9M9JHXgrGZx8T4ZnA5/jeWUYi98hCKExLdiTswE=; b=pgcv9NHDcsId4tPYUG4FIFTciGb+EEh9RedFqboNkGDN3oZfX4O17F7vUr+Exr73PvO/3A YmiL9RnZSW5VqiIzHnLrbgaB7hYzXcH91Y4ilWlXDeBtRLyzHyR8/+JwmgJqWjo82PWrDq tRq6H9CaowL2kWy+J1K82ZKXMK8a0DA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1710930526; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Uacu9M9JHXgrGZx8T4ZnA5/jeWUYi98hCKExLdiTswE=; b=pgcv9NHDcsId4tPYUG4FIFTciGb+EEh9RedFqboNkGDN3oZfX4O17F7vUr+Exr73PvO/3A YmiL9RnZSW5VqiIzHnLrbgaB7hYzXcH91Y4ilWlXDeBtRLyzHyR8/+JwmgJqWjo82PWrDq tRq6H9CaowL2kWy+J1K82ZKXMK8a0DA= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 9BA68136D6; Wed, 20 Mar 2024 10:28:46 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id TYuMI166+mW1agAAD6G6ig (envelope-from ); Wed, 20 Mar 2024 10:28:46 +0000 Date: Wed, 20 Mar 2024 11:28:45 +0100 From: Michal Hocko To: Pavel Tikhomirov Cc: Johannes Weiner , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Vladimir Davydov , cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel@openvz.org Subject: Re: [PATCH] mm/memcontrol: stop resize loop if limit was changed again Message-ID: References: <20240320100556.463266-1-ptikhomirov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240320100556.463266-1-ptikhomirov@virtuozzo.com> X-Spamd-Bar: / X-Rspamd-Queue-Id: BBDBA160019 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: f53gee9xqng9xp98fam1nsnhhxpwb48p X-HE-Tag: 1710930528-48039 X-HE-Meta: U2FsdGVkX19GwH9j0eKUJzuzHxUgMEE4L3SsvBVJ+Ecn8hQTl4CNbLUWc5ZQGVE0DGTZ0rrh9d1CZjS8Cgpunfav81eUriPbFVj5TBcgsDuqjyCyedKhT42h8XiDacYl5547pOdUGU9cyobaxcafNKzeiNt6Rez6WfFKUUzkjjIfQayYJKPPNBskO4ZzDeLt9Cj/j2uKEgKRc9UNv/9tot0y3CybAH9tND3SXMSqUcbRXSquEeaRBqNKjR/QKbbdnEqyGetgcY7Xp6jrbL6YyDwbb1Uvi1f9y4iePdKip1aLc9bYD7j5PMYAaPui/uXlOCVob8evVD/FQPKLhwSOYc047513bAsGP9ok/cynZE68NWhpawF8JtYcSeA8astvmmbJwCC3/mLK2/o/Qqh/EbUWfBjb1ECLzV9DosXQpU084M6Buuo3g/YuE29DdAxl0zrPEpXWjWrB+okKeDG3ODbSAyzDqsB3VFZhh5I/QqeZ+f9ZkMRSmCfma0aZdLqizgSVna3kd3jDZsK3c+f2GbBqGVNOcgwD2edA7dEZs+2C1xDomuUdWxmm8ljoHChlEg3/G0jtt4VGtr8WYG93ndqRMN+oc324cPJGLUyGVeTS4fH7O1T887DCx2zuWaO4CKhGZi3JwoCwKBa3zi8N3rsn4BcWU0pO0Oz20WXndv5/UfROTfjk1O1RGzlareia7lYgg++OV5gcwqhoREXoJQ7qGnIRx4BHicwOJqDLmw5SH/BhKxP/iFD8qhzeqAuojC0pTlVp1h43z5qNxUhCLt9P3pOTHmBHvkq61R26KgrErp/g9EM7l/ReCR5hBG2JWySkQ+oQ/wFt2jNAGyzjFo3A8ty837DCPzTa2h3MT947AsrKpiWaHfZT0gjuRy16O7hBf+HG+g5H7ik+/i990DKPK3oMo78Qy/43VaWIqvofXZf7l6xXMHReEdhi6lmTMwUpG8Lyn9hZ0zSUDQI VI2tGmnc EqxYNiiGB69fed6UcmT7R0+hcDOt5kwt2l0uGcZYriGrhgJ9RwB6adLklVAHixE7Tj47IzP1njcrNNkUMFNirNmxHbxqhMUiZlsm3Su6oVjQDEEsUFyCQNEg8OfNV+alLZAjLpccB5aSeWqdRAk2mZN8ShLpmHg7iijPpPGn2GuNLlPql3/CkRSvkgOHYQUjXaufYztaDJ/lNWiay6x3a3lIgItE5EcTNNMf5Y7HtoniReipHcu8naU7Dd2ukR+LRE7OXCVbMFWUkSC/rD2PIlKj0EvyUDqslK4GcpoOjRGTf9/T79fXcQWtAkDRLU6+zfaH0RchPJZxFkMxh0DKT7tAZ9w== 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: List-Subscribe: List-Unsubscribe: On Wed 20-03-24 18:03:30, Pavel Tikhomirov wrote: > In memory_max_write() we first set memcg->memory.max and only then > try to enforce it in loop. What if while we are in loop someone else > have changed memcg->memory.max but we are still trying to enforce > the old value? I believe this can lead to nasty consequence like getting > an oom on perfectly fine cgroup within it's limits or excess reclaim. I would argue that uncoordinated hard limit configuration can cause problems on their own. Beside how is this any different from changing the high limit while we are inside the reclaim loop? > We also have exactly the same thing in memory_high_write(). > > So let's stop enforcing old limits if we already have a new ones. I do see any reasons why this would be harmful I just do not see why this is a real thing or why the new behavior is any better for racing updaters as those are not deterministic anyway. If you have any actual usecase then more details would really help to justify this change. The existing behavior makes some sense as it enforces the given limit deterministically. > Signed-off-by: Pavel Tikhomirov > --- > mm/memcontrol.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 61932c9215e7..81b303728491 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -6769,6 +6769,9 @@ static ssize_t memory_high_write(struct kernfs_open_file *of, > unsigned long nr_pages = page_counter_read(&memcg->memory); > unsigned long reclaimed; > > + if (memcg->memory.high != high) > + break; > + > if (nr_pages <= high) > break; > > @@ -6817,6 +6820,9 @@ static ssize_t memory_max_write(struct kernfs_open_file *of, > for (;;) { > unsigned long nr_pages = page_counter_read(&memcg->memory); > > + if (memcg->memory.max != max) > + break; > + > if (nr_pages <= max) > break; > > -- > 2.43.0 -- Michal Hocko SUSE Labs