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 87E94C5AD49 for ; Wed, 28 May 2025 15:38:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F191C6B0089; Wed, 28 May 2025 11:38:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EF0A66B008A; Wed, 28 May 2025 11:38:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E2D7C6B008C; Wed, 28 May 2025 11:38:52 -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 C64A06B0089 for ; Wed, 28 May 2025 11:38:52 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 668311A0D1C for ; Wed, 28 May 2025 15:38:52 +0000 (UTC) X-FDA: 83492724504.27.A7331D0 Received: from mxct.zte.com.cn (mxct.zte.com.cn [183.62.165.209]) by imf23.hostedemail.com (Postfix) with ESMTP id AEA80140013 for ; Wed, 28 May 2025 15:38:49 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=zte.com.cn; spf=pass (imf23.hostedemail.com: domain of xu.xin16@zte.com.cn designates 183.62.165.209 as permitted sender) smtp.mailfrom=xu.xin16@zte.com.cn ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748446730; 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; bh=Av782QC5az62ptVoT1S8d2NRO3Di63B/bue0M1dcPg4=; b=UAg0ZkOPCieKhZgtSkOClkKs04FhJw4VhK5rMNb+B6IA4oxkeu1Q7+Z/OuxK+KPGlr2OWF +s4zkXvXDD848j2+j1P4ipFxloNPQh6wUrBvb1Nf2CJXkOzbnDa5ulaao2Z8cAN1B6lhhe xDo8H6YSmcqcLUq3X4GWKOgW1Tzcy5w= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=zte.com.cn; spf=pass (imf23.hostedemail.com: domain of xu.xin16@zte.com.cn designates 183.62.165.209 as permitted sender) smtp.mailfrom=xu.xin16@zte.com.cn ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748446730; a=rsa-sha256; cv=none; b=n8PwvkaucvwBgMizO5CU7nYMWSUPR7auw/6A4Ipswt/b9IF1zRutXCFAVdAsYg403bYBrS OrpwgPAMNfTiUDQCgVAkJ4VeWOZ4iBZC2A3Yso+zFEa8hfCRGL3nIOJO8+95d2AxStxtTG R2yNdpbZ5IduOHBDilfHLNO+umVIcns= Received: from mse-fl2.zte.com.cn (unknown [10.5.228.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxct.zte.com.cn (FangMail) with ESMTPS id 4b6tvF3M8Lz4x6Cq; Wed, 28 May 2025 23:38:33 +0800 (CST) Received: from xaxapp02.zte.com.cn ([10.88.97.241]) by mse-fl2.zte.com.cn with SMTP id 54SFcS4N089038; Wed, 28 May 2025 23:38:28 +0800 (+08) (envelope-from xu.xin16@zte.com.cn) Received: from mapi (xaxapp05[null]) by mapi (Zmail) with MAPI id mid32; Wed, 28 May 2025 23:38:32 +0800 (CST) Date: Wed, 28 May 2025 23:38:32 +0800 (CST) X-Zmail-TransId: 2afc68372df8ffffffffcb3-045c5 X-Mailer: Zmail v1.0 Message-ID: <20250528233832445zSfRddcejioi-qwhWuUBJ@zte.com.cn> In-Reply-To: <6057647abfceb672fa932ad7fb1b5b69bdab0fc7.1747844463.git.lorenzo.stoakes@oracle.com> References: cover.1747844463.git.lorenzo.stoakes@oracle.com,6057647abfceb672fa932ad7fb1b5b69bdab0fc7.1747844463.git.lorenzo.stoakes@oracle.com Mime-Version: 1.0 From: To: Cc: , , , , , , , , , , , , , , , Subject: =?UTF-8?B?UmU6IFtQQVRDSCB2MiAzLzRdIG1tOiBwcmV2ZW50IEtTTSBmcm9tIGNvbXBsZXRlbHkgYnJlYWtpbmcgVk1BIG1lcmdpbmc=?= Content-Type: text/plain; charset="UTF-8" X-MAIL:mse-fl2.zte.com.cn 54SFcS4N089038 X-Fangmail-Anti-Spam-Filtered: true X-Fangmail-MID-QID: 68372DF9.001/4b6tvF3M8Lz4x6Cq X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: AEA80140013 X-Stat-Signature: mst5pg77quizt54y9i5y9we6z7hehfu4 X-Rspam-User: X-HE-Tag: 1748446729-35903 X-HE-Meta: U2FsdGVkX1/pR6dvLoCMHfayyexyTHqLOAANSJU9CbxVOwhKKYpq10oWrNztHQC1lroSFb3PW2pINkSYK4peFBqqJuDa1Lohs67RASw3NfIrrAAfvXkjul0tRwF5NlBTVMgFEwN7SPx5ABfW9hDx12RlfgFNnD52HPKCHfVHtuvouLrX7kTHBOdPQHm2pQc2ULTbHhyFZXtPHWVfYPVbDObiesRqPOlyMhtOGXImwuERl2Hz8rsPKeNC00+ChrQqKBiRu02sVbkBb0Iftlk85wDglArF4t2UcGdW/zfvL21EFqCH/iIBoYmXDIeCra7Icu917bGNcXP/tTBJ/sEBAGZpdbjqlCfabHdDNCDuy6srzkJbm1HdPu3STh4FnS5j/NLV0Sk1KDIGruDpEtkpXKGWZ31V8fJeF7YdE2U91si9mn0po7/0zQPRKPBy5396H2TrTqU70BCkg//4MUymPP4oTqov5RV7sPaLb7vd/uViZpLjBcWk2BeK1umlaxYTgqCjhpVD4RUieZh8Ebt0SByxEXdWac0ILu7h75EEcSz/vF1rk0J8mZxVtO+VUuKpMt2wHWQG9LKNoe2WbvS5OlzfbSYqVp60RDfKWzmJJJkXVLTnIEuu+Ig5LvWd1Umghv+jRghUvRL1/2OERGW2lUaKZC62oxwtdOTssJoAuqWTIwLkoUMCsMRWLzfxxd+Sf8gTnm7pp6fvzkD3BFAKakstzpq1JgPB7ap2LnnRaLkOzLSEg7yYQ4xmaounno8+0DW0J3xq+hm8w3ljduhnNYs+M1rdueo5IYMMupdrgTlmQ1BOsfOPeOIwRJSKWQPoI1x0ZwAke+b+EdXkuujgT1p6pb3VUN/zJjOvMs1B+RJ/hBhQ3DsXNgvNehvbCag0sHAVMdLUP58U+ohEpC4LH3f0+DkoJJCL809kW+EdUQCI/IFXGwbqDdRXXZMlFSgZm9R73m+KKjWl7VGqne7 JkOPXs4I 4XV8Gj8WpUwpUhSw9BVIHA+bxjCWdvAx0fYoEWVjAL2iW1YojK8QWc+5JME9hDEP6sV76ghj4Rwiw2ZA48LwoY4/caq2gsUMKMJr4Lv00xCx2LbrrKYDy1HK9vp9+98AfFQqdwbf1CrRD0AcJct5mPKF/8YTQCALUpc8S 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: > +static void update_ksm_flags(struct mmap_state *map) > +{ > + map->flags = ksm_vma_flags(map->mm, map->file, map->flags); > +} > + > +/* > + * Are we guaranteed no driver can change state such as to preclude KSM merging? > + * If so, let's set the KSM mergeable flag early so we don't break VMA merging. > + * > + * This is applicable when PR_SET_MEMORY_MERGE has been set on the mm_struct via > + * prctl() causing newly mapped VMAs to have the KSM mergeable VMA flag set. > + * > + * If this is not the case, then we set the flag after considering mergeability, > + * which will prevent mergeability as, when PR_SET_MEMORY_MERGE is set, a new > + * VMA will not have the KSM mergeability VMA flag set, but all other VMAs will, > + * preventing any merge. > + */ > +static bool can_set_ksm_flags_early(struct mmap_state *map) > +{ > + struct file *file = map->file; > + > + /* Anonymous mappings have no driver which can change them. */ > + if (!file) > + return true; > + > + /* shmem is safe. */ Excuse me, why it's safe here? Does KSM support shmem? > + if (shmem_file(file)) > + return true; > + > + /* > + * If .mmap_prepare() is specified, then the driver will have already > + * manipulated state prior to updating KSM flags. > + */ Recommend expanding the comments here with slightly more verbose explanations to improve code comprehension. Consider adding the following note (even though your commit log is already sufficiently clear. :) /* * If .mmap_prepare() is specified, then the driver will have already * manipulated state prior to updating KSM flags. So no need to worry * about mmap callbacks modifying vm_flags after the KSM flag has been * updated here, which could otherwise affect KSM eligibility. */ > + if (file->f_op->mmap_prepare) > + return true; > + > + return false; > +} > +