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 62C65C83F1B for ; Wed, 16 Jul 2025 23:14:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EC83C8D0006; Wed, 16 Jul 2025 19:14:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E9F828D0001; Wed, 16 Jul 2025 19:14:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DB5238D0006; Wed, 16 Jul 2025 19:14:10 -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 CCA788D0001 for ; Wed, 16 Jul 2025 19:14:10 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 5A8991DA1B2 for ; Wed, 16 Jul 2025 23:14:10 +0000 (UTC) X-FDA: 83671683060.28.164AFEC Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by imf15.hostedemail.com (Postfix) with ESMTP id 80977A000F for ; Wed, 16 Jul 2025 23:14:08 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=rUDA+7j9; spf=pass (imf15.hostedemail.com: domain of kuniyu@google.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=kuniyu@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752707648; 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=4p8GpJxjCI5eDeDIkAggybtEqsHm8XvF9EmScbRw624=; b=N6nOzhffBmPO5/QgQttmN/hr++4WjW9FrTK3YSD8//rcCz/Njn+dIs/xfFR57QV8zHRzxa jDRvnYVB3JU/63JUsrc5uI50GUzhac/TDhlU1amTRWO9fpj8WCqVk9pPgf/T25dzZDfEbZ JrBxvkUj3XLkrsKWqtDnmPHyuJNTzYE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752707648; a=rsa-sha256; cv=none; b=0/R0kpZD92QHxHh67WsCngMY/tKqlT0JN/CeQb1kppOww9QZtdmAo57/M1jeu7h7qnwrRw LElFa/Gh7mq9lamYAhVZOTchfkF/H9bq3KJL5UQf9Ydv1tRtz2BuXgLmxS3UkZTv8pracY P+QMQ9YDGGeLUTsUYtGeW9caIGxyD1c= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=rUDA+7j9; spf=pass (imf15.hostedemail.com: domain of kuniyu@google.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=kuniyu@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-31393526d0dso357248a91.0 for ; Wed, 16 Jul 2025 16:14:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1752707647; x=1753312447; 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=4p8GpJxjCI5eDeDIkAggybtEqsHm8XvF9EmScbRw624=; b=rUDA+7j9wQEFci93SLzjNhGBi8mpGT9afugn80u77nctfpVx37FdtOGod+WA0xuWw4 QB9UYWna7uKtMtHRXHSQJAnCCg2pqjutGPPHd0+ugAeF/HqVskrZRYQZcvclGtMQZSfb mvw4HNdBu6sXzdGLp5+zVV7RAAdetYaWA+ABgG+uN8wovKpzlU75g/gh4028U7/7hOlg tQasumjuhV992wRdClaCDkRbRs427HaExM+EEZn3TSAk9mR5Xy9H7HzukioQrTIdb3Rp jKfQCG9nAEjrxMouoo4ZOCtdjdM5c0Swo3Xw3GMcJ5uwLs/xRkFulq85j7pOCIQumY/Z nhzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752707647; x=1753312447; 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=4p8GpJxjCI5eDeDIkAggybtEqsHm8XvF9EmScbRw624=; b=Pntnoz1vudfxFrvWifw8LqJpHpR441tlvpfcnaUJeqLmRhzEAVbP5S0x5OoiPoDPXz ZDZcTb0JrndBg1Ehnb5hmImPmxfoxwAkiHYHq1LveLHYFvO7HCosJ926zCCrF3VSl57u 9eReiJhKD9JLa7pfgSlZ8kQ7CpC/P5MPFXhVzm2rVu90Z2BBuXLIRaQPZ3IGIQ38Coqw 1L2nYN4j7X2PWLYAqUNwvch4x5myoEupeMX8umBJKK1H6MUmE4HiNxWEZ/cyIZonGwTT IPjuI9EXjNbMQ1MrP1aWe3I9s9LrsbOb2ChsruVHE8U3yiIOqR5iTFM/Hn5+fjzMr/Ge odJg== X-Forwarded-Encrypted: i=1; AJvYcCVS1OHDqyt4ro16iPh8M1UxOnNgMqPMvYCBI/4lSQCKZBtFhdJDJNUkGg777hO0nO1eIGQ0Y9EHEA==@kvack.org X-Gm-Message-State: AOJu0YxjjE0wDhZZpD4MwWs8L3TxSQ0qT65nI7yZEzEBGcsBMQMYyrvr hAjlOd3HmN+Fz+lrQ2K3FjTEV2nIF8OTbzLy0B+ntP9K68WpM2qFP6wy2gdiN3oUIS4/TluOMN5 tnUy0wTnSMnmVnCKWrivufa6ecu5GcrEst+/M5IExXj/igLi7V0GS5WzXauE= X-Gm-Gg: ASbGncsxIyVuSttFKMYwW3mJGU2HNZO+UBCUjaZCwvagwyXuW6cT79n5LMzugGYcKl/ TTUfujsF2lIU2wPtx2D3IiCbLYphCJ3AOwEhxpng/VYO3+sEEinpaN0j6cA8UQSNsaFimll2zKI Dav4oLF1026O8f3q/TnFvBwkXV2jj+up47Usyb7Px47qIa1NmorsL9CGfbTUu3SrIltLfZncshr BvgHeR4F2+XEn8vkQoci2MkGWizeYim0GdETg== X-Google-Smtp-Source: AGHT+IGmFgB6PHMeHh31d/e6gS4XmhL25dNxCLJteNFhTuBDdnGi01wr/6z0MA3s357m5mQa4z/5jSfGcN/LeoMz4kE= X-Received: by 2002:a17:90b:5587:b0:311:c596:5c6f with SMTP id 98e67ed59e1d1-31c9e7596edmr7678685a91.17.1752707647199; Wed, 16 Jul 2025 16:14:07 -0700 (PDT) MIME-Version: 1.0 References: <20250716042925.106239-1-kuniyu@google.com> <20250716154315.b49d3af2cd9294faea24d6c2@linux-foundation.org> In-Reply-To: <20250716154315.b49d3af2cd9294faea24d6c2@linux-foundation.org> From: Kuniyuki Iwashima Date: Wed, 16 Jul 2025 16:13:54 -0700 X-Gm-Features: Ac12FXxAQLTk6JeRmb32hdOY4pV1V6NDODzOyAAQgBCo84oKh-MvmOiOEljg0dI Message-ID: Subject: Re: [PATCH] memcg: Keep socket_pressure fresh on 32-bit kernel. To: Andrew Morton Cc: Johannes Weiner , "David S. Miller" , Vladimir Davydov , Kuniyuki Iwashima , linux-mm@kvack.org, Neal Cardwell Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 80977A000F X-Stat-Signature: y45d5h41cm6c8aw9wdtw737ytg85nr78 X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1752707648-369672 X-HE-Meta: U2FsdGVkX1+hxn63zQnxQ8cQ1xnmu92ri968ENcj2dkWSeHYCj8huHrIs2CMUws/vuXlVfSLkEhPFv+i+lKTt4mYUO9Rb26iqMJVNu60ARbHwh0/oAKl6xBQfsNfdoZmWN0SekKUTKLv5UW1ZjBfSBXMCW4L5MCoFysjhbAV8CDnA1REtK6rWxhkzmjZnC3lWfTCPZeorl6P3MQWYdPTTcgL5xmLO+zvfSONghs9zX3ewSvZJejk9vK0HOK6zKm6xv11rB1EJd8+WhnOb6wM+iIGuKTmB9tWtrQzlD/jiPgDhUInV+PNriGNZ+zehqfpnNXHZLWN6SKpTZ7rp+PUsT1qFfCjVm8UcCT3Y5q8uvJ1D9nR3y3mF5F0lqTebBg7rGMq+tD+eh6oXL2sZMw4glzECUkK1IYgYbiycK/FskkPKmKjVUQcXjtw2D7yy0NlubXVDTIw2YceVTQevdKbX/F8WXZH9T9rxUuUoDUhJJ/kciL/u9q+kJrcqEFm0LEnDWJ8yBo956A6N+ahRpXd2xLtF3rRa3h1fZr1km4I/smBSWsmStnMxF+yDHCfQv4EjVMJMGizKhtpTHtvDIit+d0fGDEFf6AsSA3WbAzvf2dQlGQuWujiyNHL/Cz46XUPJc5uDn7UV+nklxvBCfOtwd+ECYrKSqoxiDgNG3AJliqQ1wP5KoslQfeR4BD62PNYwbp5wtWlX3vm7hGzZusJ8TxMmXyCsjn/gzMUIORygBbf0m3w90bHJ1kOXDDrJEj+iCv09kiYeCxP0A/Fcp5ak9kcptb3ogikd4/DEq98jQMUK9K1qLSKZsI26eENxgIpTWMF9hyFg2Pgw4v/Sq2fLjoq8SS2Zxwhm2/xMlefwnLE5Ji/YrVjxqDIHb3PY+9nijvY13/+lklAlNLaWtPP6m56h9//JgZMmOZCU9Gfo25OA8S3k444WwqOyXp6FzPXm4ZrDtTbycxOMl2SG24 ogw23hgV IZnK2zusYEiTDYeTvyM/+lXmj4TObz52/xaRqCAx+wRkQc6I5EwOz5r484MrlqPUAVI9S4k/9Ck/YHmHkTW+NRpt0+QK76C1YSgxZTReqfc0dbh2n7ve121j9B9WeYWM5A/nQuyp4DBhRQ3ghS+7oguRjKRBdm/UTpURkri89Ozg8ikwSXs3Ad51kTPpRbSU0KRNMUDuRPERY/fwVf2iWApdePhQx6VmnKoi9m6CgxSmwnPmCLShT0/pBlvOP24MwzBUZzCJFPgkkGlswKrgnOmc6MvdMl/x+4Xn514RhLuHIuHWqnKrqeHLyIK/tgSe5vm6z5AgmO8/mLFKJbgj677tt9Tw2jbVBjKWjYcmEuCorLfnYv3kz1JuVHS40fqojEKD7qDSOKlqn/Zs= 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, Jul 16, 2025 at 3:43=E2=80=AFPM Andrew Morton wrote: > > 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=3D1000, 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? I think it's doable with get_jiffies_64() & time_before64(). My thought was a delayed work would be better than adding two seqlock in the networking fast path.