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 9581DD6D23B for ; Wed, 27 Nov 2024 21:05:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2350D6B0082; Wed, 27 Nov 2024 16:05:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1E4726B0083; Wed, 27 Nov 2024 16:05:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0FB086B0085; Wed, 27 Nov 2024 16:05:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id E069C6B0082 for ; Wed, 27 Nov 2024 16:05:06 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id A657EA1624 for ; Wed, 27 Nov 2024 21:05:06 +0000 (UTC) X-FDA: 82833104886.15.282B332 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by imf18.hostedemail.com (Postfix) with ESMTP id 1DBDD1C0008 for ; Wed, 27 Nov 2024 21:05:01 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=iXnt5L3a; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf18.hostedemail.com: domain of aliceryhl@google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=aliceryhl@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732741502; 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: references:dkim-signature; bh=6biYp+6ZfGUjL/SgAvSogDVcmG5MlG7Zq/OJYvvtXBw=; b=yHeKk2Tf6lt3zRMcyx7EEK6+zrplY9XzpSLem5SMollnTXGbEbd+zoGXw0yMIDssRL96ov ao+SOVtMDg3iJnvhT2nYaRBYKFsfllPYZTKq3Nv0UIt7CghraU+9MoZ9BxKBFy+mdabd0m 4FuU6VjtW5OZ36XdakZ1+jfnqbrjHNM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732741502; a=rsa-sha256; cv=none; b=8hD47FA3Vl+t1T+MjmtEzpiYipEw/XhsPxT0Qv4nRwb1du8o7cuep+3NCM/YQyhhaCmpdZ 0cBbzz92bywqo0yNpxVYFribvlJV5GRxCZfFt9x369Byw//AiKwHpMfFAeJESxTY4yUCGR aR8EEqbvS2UC1IfTWv2rdZMEcbVA/dw= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=iXnt5L3a; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf18.hostedemail.com: domain of aliceryhl@google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=aliceryhl@google.com Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-3824709ee03so117249f8f.2 for ; Wed, 27 Nov 2024 13:05:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1732741503; x=1733346303; darn=kvack.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=6biYp+6ZfGUjL/SgAvSogDVcmG5MlG7Zq/OJYvvtXBw=; b=iXnt5L3a6cMq+w8DhYLGqlCog/8t2PMWe7l172UFnnVuGFxpaHvZxUs99fGMwYhPl1 rAvQvW4br24dkcmX7re+C/NbSRxbTf2Prr3bA/n33/PFzEe1kQ3pqn/ZIEld7wJX2RRi S+K91/7c7S7OnHp9XJelurIsnzXfazo+FMy4j8WA2PLyhLiL3mTcRw8JvFic3Af8sb9K 4G06aIMSyQwL4T3Z3UtD4pYzOFAKReaz0TU2+gewHDhNgdd6U6trdxcvQ1F3dIeU+DJv SAyVoodJA9OcPngwyBYLKEHz4dbNPxUpPK4S3prUtXuyLp8gCwF0ARErXGkVZeGDYJgv e23Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732741503; x=1733346303; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=6biYp+6ZfGUjL/SgAvSogDVcmG5MlG7Zq/OJYvvtXBw=; b=gNZDNUTrqPUGYr5IFS2MhNRiusj+0A4aQCafMffh7Gw/yecvG7jAYmykHhaZtXLP5M CexvqfrBMG9WWa2hSRYiRLYcmWnHzOHDilOYV72BhbHjwTxVA7PS1hFdmM1dt1KEAPD7 t58Bp6SorLf/nTChlgnl9XRNUU81APfxr9fHuk7TJ9+bNnCKr9eA0yvm5iItzGjFjsxD ow7skvCGYPJhqy8qzOepo37Fo3R3d43HqbD8IKyS7remq7JFg15E8hEhrjTtdj66aATs QSs5cWqXbx71EeSIcRUtZlhhsK7woY+eP/QQbN3NACZUyxcf94MO4CUPHEHpWTjlq53v uoJA== X-Forwarded-Encrypted: i=1; AJvYcCXvUoY/y01ZLCiRr3s9qlDv8MYK7dgXCX34/9FMS5AAksCDDAI5dtB1fmpev/GpOUCXUsa1KI39tw==@kvack.org X-Gm-Message-State: AOJu0YzyJKIpyoldurA/xtvoQSZ0ZPSZgIKqK7KID0Xz7wWftd+en2Zw Hx+W6oQKM4dDBvTUnwYaEurPmYwocdUknAK1KQA7qc00g1hzZRESaobZoI24oFe+yuzh/RzaUmE HgmuqBw8hwmezg+mnxmX2jmlwUil8AQYAXq7J X-Gm-Gg: ASbGncteF2Oly9MaFMsUtol5xkaXgV66rXI07LM9PsbGIQ9NDAYoEWbbTjK2YohkUBq 8YCKqKv4iBDo95+GboW/ZRziar1z7WKKI X-Google-Smtp-Source: AGHT+IGdFse4RAD6QkqDKI9fg4urdam3vMe+wtZk8AzXAJMsg+euTEP9GHYvdmww+9BiM+6zarTRyeFOqpLdC56Zyyk= X-Received: by 2002:a5d:6481:0:b0:382:415e:a139 with SMTP id ffacd0b85a97d-385c6cca2a1mr2970566f8f.7.1732741503292; Wed, 27 Nov 2024 13:05:03 -0800 (PST) MIME-Version: 1.0 From: Alice Ryhl Date: Wed, 27 Nov 2024 22:04:51 +0100 Message-ID: Subject: [QUESTION] What memcg lifetime is required by list_lru_add? To: Dave Chinner , Johannes Weiner , Andrew Morton , Nhat Pham Cc: Qi Zheng , Roman Gushchin , Muchun Song , Linux Memory Management List , Michal Hocko , Shakeel Butt , cgroups@vger.kernel.org, open list Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: ds6gt66xs4ixixog6584j9et71bj5879 X-Rspamd-Queue-Id: 1DBDD1C0008 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1732741501-375755 X-HE-Meta: U2FsdGVkX1825j+Eug71bV9biQ6EOJjjuZV18uhCn8XjqprDEbUpG+uYO3WBWcSNnE1GVZB7GmA7EPCmASB8xBnmZ8DMfElWWKU+NVqEXdh/LNmlfbIAAfpv9fAS+zyUU8hcAHX0HISPy92G9Gq+EMVUPfojHMoH9l1btdNYCkpXvVqN/4CYk1uWABBGIPnHz4QByRbLPbmgquO4g5kEpWYduJiai4CreknlNChpaknRSJZ/cFUWI4HSzri6+u4cfCtWIaOQty5EkhOoeVddEtPzdYJNM/Cp1+ICxhnj0u58URkpNuAhPQY5AkNNQd6x3O9tB9ljPhoXcJvTF85vvYlmSI5b01AY2gpdtLVPnqFZBj6vMCRiMC8y4TRL+OLxQVJI3xH3U30itcy6/KMfF0NSA9BMF+EdU8CheJa0arG0aOfwWC3AhyDi5Atwi6pAL3fzfKIlg/mwGNy8TmK50AH5KxJF7mBKFk6urViM6XBGRtmqDV3+pri0ol8WFespeapyq4NCEin4+aYHwnr3Cbx6TyKSCsEoxsoZzsvhRQHV889YOADsoKhRurtnybpGB/GnC+MiIWM6c4VVl83jbuCh07ziJlcAPE9I9LjzB7ui4PdJwPmuAlCSsXEHCQYVByS0UviYNun+bADTf5Gi2FhXeE7Hvpl2+zh5nGPLfLIJjfgKzPxr3Cn62U4FQQ5Ug+SmAih0Yxqm+lLdqquUXrYkz0Ty8/n0aa+cHncRBoW0NzUo6Wp/K3CNmCHXqGoIDIb/3yQ5Nj4DCukD6p9n/rFu+It9kR9WS9lelTTBBrVN2G7VsChv9ROZM0sMhPWF/jQGMqQreKr0dc6yU5V75BlAmDrfr2caceHyyhbwWWdhqjKq5bO3e2Ej2+IwZbzWHaIyczS8zBFKGCCwoD/fbD/vWdFYdbTWP0ZzLKF1+PHjkfo8Xp0NSwFDzZB5dZ2ut2+HJ9RTtvTmAJd1/Ql BGihAFoZ 0gtBEyowjUSXi62eCLmZMHODauY2kbQJuJVRVMaZXNU4sZNvUvrJI87JUIgJ1N01vttHylKjXHOg1h598xgWKrgNN0kSHFTgn08De8EDO3UuksgXqRVJoRp0xjwft3sgIFfOcuA1/xUlyaSk+fq1/+AzsANNwozH4ckuMm7PpwZP2WkdhCCc63sdxlYrOHA6G66TgOdqYQyuJX+PLZcMW4d+vl2jlVaDs03iPG5e8DaupJQpSCjWDNEikySWmJ6Xth5uWxLGYkZPxIbeWRLbroGo5Rw93AkpgjVU1 X-Bogosity: Ham, tests=bogofilter, spamicity=0.096956, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Dear SHRINKER and MEMCG experts, When using list_lru_add() and list_lru_del(), it seems to be required that you pass the same value of nid and memcg to both calls, since list_lru_del() might otherwise try to delete it from the wrong list / delete it while holding the wrong spinlock. I'm trying to understand the implications of this requirement on the lifetime of the memcg. Now, looking at list_lru_add_obj() I noticed that it uses rcu locking to keep the memcg object alive for the duration of list_lru_add(). That rcu locking is used here seems to imply that without it, the memcg could be deallocated during the list_lru_add() call, which is of course bad. But rcu is not enough on its own to keep the memcg alive all the way until the list_lru_del_obj() call, so how does it ensure that the memcg stays valid for that long? And if there is a mechanism to keep the memcg alive for the entire duration between add and del, why is rcu locking needed? I don't see any refcounts being taken on the memcg. Is it because the memcg could be replaced by another memcg that has the same value of memcg_kmem_id(memcg)? tl;dr: what does list_lru_add actually require from the memcg pointer's lifetime? Alice