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 54319C83F22 for ; Wed, 16 Jul 2025 22:43:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D7C7A6B007B; Wed, 16 Jul 2025 18:43:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D544B6B0089; Wed, 16 Jul 2025 18:43:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C91606B008C; Wed, 16 Jul 2025 18:43:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B7BE36B007B for ; Wed, 16 Jul 2025 18:43:19 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 6A8BB80523 for ; Wed, 16 Jul 2025 22:43:19 +0000 (UTC) X-FDA: 83671605318.03.D65139E Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf05.hostedemail.com (Postfix) with ESMTP id C0F7D100005 for ; Wed, 16 Jul 2025 22:43:17 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=qq+FdWjx; spf=pass (imf05.hostedemail.com: domain of akpm@linux-foundation.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752705797; 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=WAkX4+lPSalJBB4ewTtI/HTlIdngGkr1HvbTXDN5rlw=; b=jjwelGbE7JJjj3IPCRHDBRy5yVJTn9IeHM15DOYiWOQGFdSHIaqe6NwEf5wV8oqafzk5jz 7dYY56GAj4wTlz590URD8RfZYcTv0VgwDKmpmKxbWdeCBTvp1PohfneyoN0cKZetxIB7V/ dnlW4wcIbuZXT9u+7yKwY8MkTRDOSF0= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=qq+FdWjx; spf=pass (imf05.hostedemail.com: domain of akpm@linux-foundation.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752705797; a=rsa-sha256; cv=none; b=s+dFEdXRlQnwDU3WEwEuQ6xCCljD/VP5LinbAZQL8CE0X1j/lXgbrSEhCJ84nMEH37YYAY 8hpoJ9u5yC0NDRaY0vZONx0jY3ysj/Ztdfrx/D71SfJDTga+lDfUpPTvlI2HdmjVPPjRkF a9zRmvZxzgUHw/oBhdoxPz8aFKY5zb0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id ED343A574D1; Wed, 16 Jul 2025 22:43:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 648C6C4CEE7; Wed, 16 Jul 2025 22:43:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1752705796; bh=NA1mxqss1t9o6LgNQlIIzkyECJJCs9jmodOT5RdF+ts=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=qq+FdWjxHOYXfGbeXkLG0gdj1hI6f2aXCzmeBUEqwZEsshsZkK6WWG12jcAtRiqjQ VKoNMRdo1FU7VMINsf7Sb9uX+IwVDbzoDMnfWaL0ICgnJ9KFuHljVbENPWtbS8NrIy 2eTvxmE9XykMk9vSnwJkNGmGthbM4HGQ8bKYmzFE= Date: Wed, 16 Jul 2025 15:43:15 -0700 From: Andrew Morton To: Kuniyuki Iwashima Cc: Johannes Weiner , "David S. Miller" , Vladimir Davydov , Kuniyuki Iwashima , linux-mm@kvack.org, Neal Cardwell Subject: Re: [PATCH] memcg: Keep socket_pressure fresh on 32-bit kernel. Message-Id: <20250716154315.b49d3af2cd9294faea24d6c2@linux-foundation.org> In-Reply-To: <20250716042925.106239-1-kuniyu@google.com> References: <20250716042925.106239-1-kuniyu@google.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Stat-Signature: mx984mtkeshd85xtsdrhsnwf6csm6f6o X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: C0F7D100005 X-Rspam-User: X-HE-Tag: 1752705797-513339 X-HE-Meta: U2FsdGVkX18w0Iug13oLs5RIE/uePAb9mpVLNUfgdKgXbJt1KFptMCy8/eiqvByP5UJ6eua/uFAveGbqgIO0yM95KT5vOOxd8a+rih24wcopUICnKKbRd/y0cM3R1gGI9j4DRPXmEENTOp9E3upW1BBYRxse7+1A4Y2fkg59wGCzolbEVeZobQLoOAYekrCr1FmAw6YgBq8Flyx1OF1d25CcbmFV0mrr2VmKa8+61DDG/vd2GkvdexLd7ZvFdAPw1a2X/zuTaiS4dNDbLqsDWfqOj10tDg1BlJFs6wZ4LwJdHjFbQ5Dul3j8sy3SS+SqdrSST3NUi7t16T02KcGhdX3TNNX3pgf1tjK9poHHa1+PUFwLl3mtwAqvHUoLkXkWUQNs9gc7l//0UsvXJHGxbS3MLxq01XnaNxUQlGdmJ0Lj8LMIUecmEiOV8f43QJdZfpoHgj70ulg+wjLebXPgL1L1y4l1Sn2+O2M10AINQFgSChcoSSDKZ+iujHkf/7ZutWpt1lw+/9zgLjOYcSmuFqrCpQj0zOR9MPIraRQ8Tct8/fTra623BxjntNLB8qliYP8iBFzcAVvUDS1e6d+mwa9vPGGyFsaFmfApneTMU8FGhfYokwkBEIdqvaecG8kbqeqG3Q2aeoH53nEbswO6IROWeCiyMGMzA4ra3MPYuigDilDpZfdHz1WqTue1EVt+Ew0aNa6tByLQhbohbQTHyLYe0kAbya9iY/lDgpLRxrE1HLPvSMzv5c+ZEvLh6kbe+pNHKLedNUdWVayC0sBo6k5uYr3m1dtBMXWf1QIbfuhQdrLSIwlSGUtar1o184wQNoV+48RFDBDroW7zRQDe+hYf9ZyL/nyzSn7UUg5DKxJ42Nlug2VaczEuTnnIO54rM7sOFHT3cV60GNwxJLC5Xe2maK2QZbmrrhqwJvHcYGmvCQjX68a9BtL6li7BK2dkZxo5tGd4fFh2g1O/Hs6 TGWWaBMr FgQj0FlgsG+vXUi1N6ciEojk8FTadgGML1C/C9my2v2b+0zgMmdLq1fyUCeZf6/Z3sAEFC05d8QUFxm7IK7yFXwbKXLrwj2CnJZpl2cY0s8InZ39aDAJQjCoE/GoKRzaeWpcc0veyi3zxdN4lceY50DIfpTrgOYP6cJQ27IVyCw5sfWN0G01ZEBb0RBdg0wYO3WZwy0AUWC3k4s0+5Ltee4QsH4iPXOl668zPdDgg+A4DR/648f9tfZppzZ6PcQblZ/GnEAVQ5ahVVPBjmh0BROacw8PTNGUxYVZlXKIpIPoDAKv3Raf0n2rRkTRAbGzcyRyzRMuMOhAH3VtkcZHwPEVBNj4xoySQzDKYQn3QbxIzKeNZ/W078Bt8/CLQzhTE6gD2VieG/NsbYZs= 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, 16 Jul 2025 04:29:12 +0000 Kuniyuki Iwashima wrote: > memcg->socket_pressure is initialised with jiffies when the memcg > is created. > > Once vmpressure detects that the cgroup is under memory pressure, > the field is updated with jiffies + HZ to signal the fact to the > socket layer and suppress memory allocation for one second. > > Otherwise, the field is not updated. > > mem_cgroup_under_socket_pressure() uses time_before() to check if > jiffies is less than memcg->socket_pressure, and this has a bug on > 32-bit kernel. > > if (time_before(jiffies, memcg->socket_pressure)) > return true; > > As time_before() casts the final result to long, the acceptable delta > between two timestamps is 2 ^ (BITS_PER_LONG - 1). > > On 32-bit kernel with CONFIG_HZ=1000, this is about 24 days. > > >>> (2 ** 31) / 1000 / 60 / 60 / 24 > 24.855134814814818 > > Once 24 days have passed since the last update of socket_pressure, > mem_cgroup_under_socket_pressure() starts to lie until the next > 24 days pass. > > Thus, we need to update socket_pressure to a recent timestamp > periodically on 32-bit kernel. > > Let's do that every 24 hours, with a variation of about 0 to 4 hours. Can't we simply convert ->socket_preesure to a 64-bit type? timespec64/time64_t/etc?