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 4E77DC27C40 for ; Thu, 24 Aug 2023 19:47:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2C8C52800B2; Thu, 24 Aug 2023 15:47:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 278C18E0011; Thu, 24 Aug 2023 15:47:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 141CE2800B2; Thu, 24 Aug 2023 15:47:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 006868E0011 for ; Thu, 24 Aug 2023 15:47:47 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id BD3C4A043B for ; Thu, 24 Aug 2023 19:47:47 +0000 (UTC) X-FDA: 81160033374.27.DEF9550 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) by imf29.hostedemail.com (Postfix) with ESMTP id 0D85C120023 for ; Thu, 24 Aug 2023 19:47:44 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=XjIFp0J5; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of 337PnZAgKCBQC1u4yy5v08805y.w86527EH-664Fuw4.8B0@flex--shakeelb.bounces.google.com designates 209.85.210.202 as permitted sender) smtp.mailfrom=337PnZAgKCBQC1u4yy5v08805y.w86527EH-664Fuw4.8B0@flex--shakeelb.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692906465; 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=6JCfcLVO4SvmssOWNOksTxj1g6uZP7ewn4ZDSyF/b3U=; b=ROiXCSlzPM2vpsP3px7xMnAYvXeBTGvu5UpOQQeoNfA1qBsEx7t52QurJtClud2C8mw8rN 2IVHP0t8Nir83dK3Z+t61yTnB+0C/leoBczCLfSNKtiF2hq5Lg4TjgQKPWffngH6tqSfcT ASerUGXWNdsbbBz/8aeyGRUSQczAdEY= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=XjIFp0J5; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of 337PnZAgKCBQC1u4yy5v08805y.w86527EH-664Fuw4.8B0@flex--shakeelb.bounces.google.com designates 209.85.210.202 as permitted sender) smtp.mailfrom=337PnZAgKCBQC1u4yy5v08805y.w86527EH-664Fuw4.8B0@flex--shakeelb.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692906465; a=rsa-sha256; cv=none; b=war3I5h8M7sWNtYRauDNmDXUome+NNBJsik4DszPqAfnkHnqpGWnUeZF5ID+2lkDPXQLVQ JNJ87jj14uDEBFUGWww2AJGbRm0CIzyPC4+l3RHtjDSd98Zs0zUC8ozqRG4E7UmLYDjhVN aVYGBIfM6Jw3tITxR0VM98gOiHMQOkY= Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-68a56401b5bso359457b3a.0 for ; Thu, 24 Aug 2023 12:47:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1692906464; x=1693511264; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=6JCfcLVO4SvmssOWNOksTxj1g6uZP7ewn4ZDSyF/b3U=; b=XjIFp0J59schxAEL01+EX9vJFIxm7OIpZXXJSnQhpXrn/fk2S2Jo4N0KTRYW3HFrMm Na07NOjHhedPyUZxX9Qy7YPS9uZcaCWU8NpHDEyQOdArZUH0mPZ4A1wqLxGBRVk+DXK7 5+0Y0LlAsWJchFp/Gw0Qbn2yfZrwDxhqADfvTj3P/SqfjAAlgsThq6Imiv5y7IyP6zZB EdM8sLsVupfTv6XvgQHIR0fy5fC969oGiasYj3n0YtIPoM4JmQFz20yUhInTqJevXs5O UM5kLCoVCqg1no+9gKaWRaBJJPPN0N2qlDDMUIR+gbt6TaKyNT4N3pSBYl+0HqfnpWmw iK8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692906464; x=1693511264; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=6JCfcLVO4SvmssOWNOksTxj1g6uZP7ewn4ZDSyF/b3U=; b=S8x+drZupWD6SUQ1h/hFwm1DXX5Oh1e/LuLoewhEEcJsa/+qVrKWOTSIcr6DYv2mKs dadMGCjhK4Ux9VuTH/Tr8DInK8+/JNlN+75HDhy4a+SL/0wQt5696h07QQAsXoSgTyN/ zt9S0z21R2LpoKQ8R16E9Lpl7GuctR1FHw18nbX9e1+2yuPMFgA1XU4REMhcc+p2ipTE /XzgxqT/yI6ZfFGr0U+Nyh0BAtOoK/vmC2MrvGpTbjTACjWaPLCejjzA9GbWzueN93Nj 1a9uy8sui3z3c3MT8oy6+PwN6D/duU1M4mnojksvTsPbSZUCHKIdLDm3hmJiTt1h2y2L Idrw== X-Gm-Message-State: AOJu0YwFcOmUomAmH4kZGuPp9MwtTeR0qaxk/s4dPmQm3vAhY0hI1nLx 6E7RyV8QSzJ0T+IPZMGvcVatQSdpB1k6GQ== X-Google-Smtp-Source: AGHT+IFm3X/6AkbfmLyZZu2pCfdu8F6MCSiGC5VhI3AeNB1oY/sAdFdYyeeW0gA9yYkOBM0x/4tpyHtgwdvW4Q== X-Received: from shakeelb.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:262e]) (user=shakeelb job=sendgmr) by 2002:a05:6a00:1592:b0:68a:4bef:5faa with SMTP id u18-20020a056a00159200b0068a4bef5faamr6673227pfk.0.1692906463657; Thu, 24 Aug 2023 12:47:43 -0700 (PDT) Date: Thu, 24 Aug 2023 19:47:41 +0000 In-Reply-To: <20230824181212.GA278867@cmpxchg.org> Mime-Version: 1.0 References: <20230823225430.166925-1-nphamcs@gmail.com> <20230824181212.GA278867@cmpxchg.org> Message-ID: <20230824194741.jodbu4v3m4gsqzow@google.com> Subject: Re: [PATCH] memcontrol: ensure memcg acquired by id is properly set up From: Shakeel Butt To: Johannes Weiner Cc: Nhat Pham , akpm@linux-foundation.org, kernel-team@meta.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, yosryahmed@google.com Content-Type: text/plain; charset="us-ascii" X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 0D85C120023 X-Stat-Signature: z19ag8zf14c35e7z1i6qnee87mcbdwa3 X-Rspam-User: X-HE-Tag: 1692906464-305465 X-HE-Meta: U2FsdGVkX1/YNqIlaSAX9J5kagVGarFsowX4Pxes5cpeGbfSfVxv5LkKhfjrLP4wmaVPhq9RWQqaanXlvti3SWeuyvWrWkPW3XUge3+xx+xwDsu5HLTi3K8bJ6upMW9vNt540giuaKlVZ+DU4aJN60MtZicx6UOehDCziwgUK3DX4zPqKlZe7/xM13hDPC0dYZJaLWdLkHlv9QwfosaOMI/ui43k2D00YUIL0U59WDc7wkfxd0EEsSYbuCk/QTSUSW6VPwxB74jgjIjsAhjUAM39oZK2U48YiYrfVFMJWK0s7lTZYDKmQIAC6yGLb5jyYQOSlV5pzOLDC8Zep2vtaF5Z62dQhfcGuEvVGutof3CwBVBB5XwVs28dtOTt5EVs6N+xwwXlT+sz4nKUL679kVvxlpMqyZyHiO4k+hG/+6YkvR4nlYV53prJpcenmhhqYVs4GhfmWqvwPX5M22koOCwFD54gjnMnBzd5BCgkciNyeiW0JDCJiwh+VIPGJ1WhPaabjRlXgEH4HtQYocusTQgwXYwJnOszx1RsMiB4JKrRFj1rz2oK2QWHYRo+zW+cj8mj3M69fdzYab2zEuUOKJZNtzKsIuB5D+jYr17t14xkoVOtpNBJz05CdJG2AP79j1HRSiT5+y1/6qMt9wrZs0+kH+am1y9OgjPLjxxX4yP7C8+m2W7606YIoMZnKAWu1MVfLGCWfNOyFKy4iUNKLaSQutaO9jUiMZfUFllbUslIYgRkhJxYM4gPGAJ/EyNBTtpm5qSHerkmv3ajiOaPOIaxOy3YJ7m1k1Z0tBxCdw107Frffh3J9nuT713djqxYc0T3ps/d9MGiShSgdsbfRh9M2yOC9SqwcBZi6d18xgsjXpiWYSZyU/6zPJEBOw8v6bTrXGzD28Q70PmVikAlX2KdAT5QS3J7xcrtYCc7ydBSEQZnOLr47h1xAagOh48o5AS6xHnqr/n28fxzgAs ix0zwXK7 gvt0VSo45UDd4bCkEJjVe0lv8aA55Nmen+ignO47ERepJwclfzuIdEBlu8j7xpU5aES09Bq7twJlTbkZqpwK26UoT561kyGtunFFkYKLg2bzbfh5DHNxYyX+qjZ2j8iZ7u56y4w0EQqXy77KrWOoagwcT4WV5n0AsGu0WbOwYT9W5rwu52eUEBX4yJGYHDVJsoR5kbzRUSfgsuI8XOShxGKOCD3AwmwAfGO0oPPacyrAElqX1ci4LqArFZT2ZEA2+HdqR5Z2HH2n8ZN6+EXpYTFK9xsGm/uChSasyR2KVCQoaEu+xhcmBp7VxgK7TNhRghZmMKaVAJlWho6AaPfp3ZsBtWtrfDOOOSV16HN0QBn9oprCIpTXssUuLU9lJPYqeQx3fH52PvrQ9hwIAFYJcrbvXfc/l/oF8t0Dqj7yeBuhbywQoGvpg0zBX5ClzrQZ3dC2fqsOIWzPWPJ2BBUdfCN/WQDFovs5tKdNk72hZN+iuW5UwOMsCAb+SvUmd7Yw0uEM527oatsQlkqjhQlyOT7x8+El4pncd21pKmozeCGnUDnaAZVywvZA5OaUy+y4OPIQTPntmlBE/znvTG/u0Y9PvFr2gJVoCuWfH38XnbIFrOyhu8OhXmgjD56d2yr9W2c+XqIRwK9l3CeOI8QS8rWNeCKkHcG0ITf5YefDlQZvCEWPFjNRz0AOBE8ZEvVPwKrDG1wmHgLBGfOetJNxppkakZX6UilgMq2q1zOZQfxmQrUKNOQ1qNUaEdJ5jVCb0D8r46mTGrVMxfcRNJRmoWMZ95bHPaziFAVNtQQ9WGd5zBGI= 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: On Thu, Aug 24, 2023 at 02:12:12PM -0400, Johannes Weiner wrote: > +CC Shakeel > > On Wed, Aug 23, 2023 at 03:54:30PM -0700, Nhat Pham wrote: > > From: Johannes Weiner > > > > In the eviction recency check, we attempt to retrieve the memcg to which > > the folio belonged when it was evicted, by the memcg id stored in the > > shadow entry. However, there is a chance that the retrieved memcg is not > > the original memcg that has been killed, but a new one which happens to > > have the same id. > > > > This is a somewhat unfortunate, but acceptable and rare inaccuracy in > > the heuristics. However, if we retrieve this new memcg between its > > allocation and when it is properly attached to the memcg hierarchy, we > > could run into the following NULL pointer exception during the memcg > > hierarchy traversal done in mem_cgroup_get_nr_swap_pages(): > > > > [ 155757.793456] BUG: kernel NULL pointer dereference, address: 00000000000000c0 > > [ 155757.807568] #PF: supervisor read access in kernel mode > > [ 155757.818024] #PF: error_code(0x0000) - not-present page > > [ 155757.828482] PGD 401f77067 P4D 401f77067 PUD 401f76067 PMD 0 > > [ 155757.839985] Oops: 0000 [#1] SMP > > [ 155757.887870] RIP: 0010:mem_cgroup_get_nr_swap_pages+0x3d/0xb0 > > [ 155757.899377] Code: 29 19 4a 02 48 39 f9 74 63 48 8b 97 c0 00 00 00 48 8b b7 58 02 00 00 48 2b b7 c0 01 00 00 48 39 f0 48 0f 4d c6 48 39 d1 74 42 <48> 8b b2 c0 00 00 00 48 8b ba 58 02 00 00 48 2b ba c0 01 00 00 48 > > [ 155757.937125] RSP: 0018:ffffc9002ecdfbc8 EFLAGS: 00010286 > > [ 155757.947755] RAX: 00000000003a3b1c RBX: 000007ffffffffff RCX: ffff888280183000 > > [ 155757.962202] RDX: 0000000000000000 RSI: 0007ffffffffffff RDI: ffff888bbc2d1000 > > [ 155757.976648] RBP: 0000000000000001 R08: 000000000000000b R09: ffff888ad9cedba0 > > [ 155757.991094] R10: ffffea0039c07900 R11: 0000000000000010 R12: ffff888b23a7b000 > > [ 155758.005540] R13: 0000000000000000 R14: ffff888bbc2d1000 R15: 000007ffffc71354 > > [ 155758.019991] FS: 00007f6234c68640(0000) GS:ffff88903f9c0000(0000) knlGS:0000000000000000 > > [ 155758.036356] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > [ 155758.048023] CR2: 00000000000000c0 CR3: 0000000a83eb8004 CR4: 00000000007706e0 > > [ 155758.062473] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > > [ 155758.076924] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > > [ 155758.091376] PKRU: 55555554 > > [ 155758.096957] Call Trace: > > [ 155758.102016] > > [ 155758.106502] ? __die+0x78/0xc0 > > [ 155758.112793] ? page_fault_oops+0x286/0x380 > > [ 155758.121175] ? exc_page_fault+0x5d/0x110 > > [ 155758.129209] ? asm_exc_page_fault+0x22/0x30 > > [ 155758.137763] ? mem_cgroup_get_nr_swap_pages+0x3d/0xb0 > > [ 155758.148060] workingset_test_recent+0xda/0x1b0 > > [ 155758.157133] workingset_refault+0xca/0x1e0 > > [ 155758.165508] filemap_add_folio+0x4d/0x70 > > [ 155758.173538] page_cache_ra_unbounded+0xed/0x190 > > [ 155758.182919] page_cache_sync_ra+0xd6/0x1e0 > > [ 155758.191738] filemap_read+0x68d/0xdf0 > > [ 155758.199495] ? mlx5e_napi_poll+0x123/0x940 > > [ 155758.207981] ? __napi_schedule+0x55/0x90 > > [ 155758.216095] __x64_sys_pread64+0x1d6/0x2c0 > > [ 155758.224601] do_syscall_64+0x3d/0x80 > > [ 155758.232058] entry_SYSCALL_64_after_hwframe+0x46/0xb0 > > [ 155758.242473] RIP: 0033:0x7f62c29153b5 > > [ 155758.249938] Code: e8 48 89 75 f0 89 7d f8 48 89 4d e0 e8 b4 e6 f7 ff 41 89 c0 4c 8b 55 e0 48 8b 55 e8 48 8b 75 f0 8b 7d f8 b8 11 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 33 44 89 c7 48 89 45 f8 e8 e7 e6 f7 ff 48 8b > > [ 155758.288005] RSP: 002b:00007f6234c5ffd0 EFLAGS: 00000293 ORIG_RAX: 0000000000000011 > > [ 155758.303474] RAX: ffffffffffffffda RBX: 00007f628c4e70c0 RCX: 00007f62c29153b5 > > [ 155758.318075] RDX: 000000000003c041 RSI: 00007f61d2986000 RDI: 0000000000000076 > > [ 155758.332678] RBP: 00007f6234c5fff0 R08: 0000000000000000 R09: 0000000064d5230c > > [ 155758.347452] R10: 000000000027d450 R11: 0000000000000293 R12: 000000000003c041 > > [ 155758.362044] R13: 00007f61d2986000 R14: 00007f629e11b060 R15: 000000000027d450 > > [ 155758.376661] > > > > This patch fixes the issue by moving the memcg's id publication from the > > alloc stage to online stage, ensuring that any memcg acquired via id > > must be connected to the memcg tree. > > > > Fixes: f78dfc7b77d5 ("workingset: fix confusion around eviction vs refault container") > > Signed-off-by: Johannes Weiner > > Co-developed-by: Nhat Pham > > Signed-off-by: Nhat Pham > > Cc: stable@vger.kernel.org Acked-by: Shakeel Butt