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 4FACDC3600C for ; Fri, 4 Apr 2025 02:20:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 880D1280013; Thu, 3 Apr 2025 22:20:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8083928000B; Thu, 3 Apr 2025 22:20:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65A7D280013; Thu, 3 Apr 2025 22:20:09 -0400 (EDT) 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 3E35B28000B for ; Thu, 3 Apr 2025 22:20:09 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id CDBBB59694 for ; Fri, 4 Apr 2025 02:20:10 +0000 (UTC) X-FDA: 83294756580.30.7C7E426 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf24.hostedemail.com (Postfix) with ESMTP id A5A53180004 for ; Fri, 4 Apr 2025 02:20:08 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=J+Hv+G97; spf=pass (imf24.hostedemail.com: domain of anthony.yznaga@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=anthony.yznaga@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743733208; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=hihIyQehB7q3j7k+6F2JpGTXdpMmcUUzS5/DDX7tIkU=; b=3ySq2UsHFBwHhU9BfXQ22VFAMtLeVsiZGl4SfUhd36YMBsQbW+8EL3gSzqzjsa6CSXCTFN 2z9tH4bzhWFjqq6diMzL0/e0982VmGAytA2bznn8JwtAbIMDAdly3Je86o08aVWU2ZDxyd Hhb2Nko6D4akhWMuaSvNCS8pQdcOAlY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743733208; a=rsa-sha256; cv=none; b=MbN6nufHFjsS/7VSR0Xg2xFMDbbQxhxq7IPxN6dtEFr0XVeKGzhunEnDC1UF7XWLJmPb70 VSTyV+x9et6LkjOpRmmL9XM0yg57X0KNmpiUy5/IQjuWhfZ7jLvXl6UMb7e607lG0dPSTm l/EOF31soN4tr3UAM0faiTSJGDnKjbo= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=J+Hv+G97; spf=pass (imf24.hostedemail.com: domain of anthony.yznaga@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=anthony.yznaga@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5341NVI4004896; Fri, 4 Apr 2025 02:19:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=corp-2023-11-20; bh=hihIy QehB7q3j7k+6F2JpGTXdpMmcUUzS5/DDX7tIkU=; b=J+Hv+G970s0UNw7Fk1O+I xyb+oyhmnpc0YLXuDBxUI4y887SHTjDoosdvUioBOI2UD3vL1iPyM4kEriPVsSNp O1DNYb66WnGlUUJbuhwUWCGnw5hFVCk7NmmNACCCuMQi8gsFpqfb7K0nsaZMrO+c mQyHqX0CLb5xbWuUowP5rBxaFxl6wt7r3CzYeHb1bHPAXl5Qxiy6CrERuLjBFlty FOsfk+Ueac1YYRGI7BG/DwYCi/7h8NtXLqD4RfoY67QlLjMwRqEgPd5SAmJVZSYt cza36SA4valOVbQ3YWNcdGnR5MfhrrmRJo92rigToLHyxAZ9f45wuer+uxd3iyDj Q== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45p7sax3xn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Apr 2025 02:19:55 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5340f1pR017372; Fri, 4 Apr 2025 02:19:53 GMT Received: from pps.reinject (localhost [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 45t2pspjjk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Apr 2025 02:19:53 +0000 Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 5342H8hE030074; Fri, 4 Apr 2025 02:19:53 GMT Received: from localhost.localdomain (ca-dev60.us.oracle.com [10.129.136.27]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 45t2pspj73-20; Fri, 04 Apr 2025 02:19:52 +0000 From: Anthony Yznaga To: akpm@linux-foundation.org, willy@infradead.org, markhemm@googlemail.com, viro@zeniv.linux.org.uk, david@redhat.com, khalid@kernel.org Cc: anthony.yznaga@oracle.com, andreyknvl@gmail.com, dave.hansen@intel.com, luto@kernel.org, brauner@kernel.org, arnd@arndb.de, ebiederm@xmission.com, catalin.marinas@arm.com, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, mhiramat@kernel.org, rostedt@goodmis.org, vasily.averin@linux.dev, xhao@linux.alibaba.com, pcc@google.com, neilb@suse.de, maz@kernel.org Subject: [PATCH v2 19/20] mm/mshare: get memcg from current->mm instead of mshare mm Date: Thu, 3 Apr 2025 19:19:01 -0700 Message-ID: <20250404021902.48863-20-anthony.yznaga@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250404021902.48863-1-anthony.yznaga@oracle.com> References: <20250404021902.48863-1-anthony.yznaga@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-04_01,2025-04-03_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2504040014 X-Proofpoint-GUID: 9RFuy4xjdkKWNLG9OWrPNtaQOlvZ7H_s X-Proofpoint-ORIG-GUID: 9RFuy4xjdkKWNLG9OWrPNtaQOlvZ7H_s X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: A5A53180004 X-Stat-Signature: dzzdkxe3yqhc18dbwaodjz9f5gs4i345 X-HE-Tag: 1743733208-921678 X-HE-Meta: U2FsdGVkX19eZhf0EekkLkNsdpVJf5Xv0xU2lzC8+Ux7SX64Mpfjm5bnMSz5b8j7m7Uz2DtgNuTFWsk705pOYmaGtTI+ZzJau2XkSBlxydU5ZFFBSklrq2YlYL46ILd5OuY9oBnqGbwYjtoAj6lpp2o4xuhSqQaSujGWdcw07kt9RMySMdLvGTUyIwuTgL0bbwijsW1sRPuh1rL0rTGaYEuRwkSmq/WqqVnKdYrhRmZqXeDsIwRk6SFi1Gq/JLknTWhLqcihQ/eSYmBv6OHTSTR/SUI9OOr/jsSecnNjPYXRcD8p46HKAly4TTc2YBsVlUzy88KsIUnAIR3Io4LJBPcdKDaDQ7q2XERVcp8Xg2elcyyspWk/KxHDmpWbAB7rbwAC0frOH2J7rvF0yTnqVQ7d+xY8LplaSzZq2ingU+0IwA4v3fNchgnHPp9I02sBufvSR22bdJQli7GAi8xQnP4krENnVVFuR0dYvC96pZo/O4SXkptoNpxrI2XxLF0HrHcrHFF8JkvRGC98jwgcsz8KfKFVFx9vAfqioaq0lRnDF0C08r1Hr5bx0nks3oZXOAkBgcc9+7kpG0Qts8je9DS2BWRyLS3BC5A9nDnExi1ApUtHK08rF1Uve7gIK/N1k0zVoV9B3eiw2AcmIasnQmaKmQjF4EG2qs+OSaSn2TrkEoiV/2+87e/xjT4tXtVaDi439oijSrykLArw7P8pxt0U6wFSsocJaSaLSq1N2G/EgR8Y8IhU4lpgXmQycHnGObPyNk9r5g0yrren4Ixqay4ft9924kalVezsZluQjBcQ7BLAe+DXVY4jcjbVlPCt0x4vP1zz8tyFq4GvLBgDQcB9PfYh0yMOsDyuvhlF6GtPlWRWEMSg3gW+L4S8QV0SY5V4MVxO0OQzyp4KEwcUzvKqvq01qs3SoCi5AFMCp1v1jE2zIBkUuIBhAMp3AHm+ivevowX7SgU0Ff9+McJ aGGzmoXj XouFvUxRsdHRk/FF+0yu+4g1dYuZs2zx+PMIJR29DRd+Foa6lD2fKESpQFOSVeb6wipEAnByAD6pg1dfs83dACilLV5+JovZcs9RUdVMcelCbmhgOdYw7NsLDtgEYyAo2TT9cR28rPYUQQT1nKF2DDjp1JSscwgXio17bTTjiha1NvomFGqUtcy4LxR6qL6jinMDPfrcAOFzuP2JKqjvkVQ5nMEb33y3jjrrvrVswtHo1YvrUj5MEIFC7Cg== 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: Because handle_mm_fault() may operate on a vma from an mshare host mm, the mm passed to cgroup functions count_memcg_event_mm() and get_mem_cgroup_from_mm() may be an mshare host mm. These functions find a memcg by dereferencing mm->owner which is set when an mm is allocated. Since the task that created an mshare file may exit before the file is deleted, use current->mm instead to find the memcg to update or charge to. This may not be the right solution but is hopefully a good starting point. If charging should always go to a single memcg associated with the mshare file, perhaps active_memcg could be used. Signed-off-by: Anthony Yznaga --- include/linux/memcontrol.h | 3 +++ mm/memcontrol.c | 3 ++- mm/mshare.c | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 53364526d877..0d7a8787c876 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -983,6 +983,9 @@ static inline void count_memcg_events_mm(struct mm_struct *mm, if (mem_cgroup_disabled()) return; + if (test_bit(MMF_MSHARE, &mm->flags)) + mm = current->mm; + rcu_read_lock(); memcg = mem_cgroup_from_task(rcu_dereference(mm->owner)); if (likely(memcg)) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index c96c1f2b9cf5..42465e523caa 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -945,7 +945,8 @@ struct mem_cgroup *get_mem_cgroup_from_mm(struct mm_struct *mm) mm = current->mm; if (unlikely(!mm)) return root_mem_cgroup; - } + } else if (test_bit(MMF_MSHARE, &mm->flags)) + mm = current->mm; rcu_read_lock(); do { diff --git a/mm/mshare.c b/mm/mshare.c index 0a75bd3928fc..276fb825cc9a 100644 --- a/mm/mshare.c +++ b/mm/mshare.c @@ -432,6 +432,9 @@ msharefs_fill_mm(struct inode *inode) if (ret) goto err_free; +#ifdef CONFIG_MEMCG + mm->owner = NULL; +#endif return 0; err_free: -- 2.43.5