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 62276C47DD9 for ; Mon, 25 Mar 2024 02:24:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B23B66B0085; Sun, 24 Mar 2024 22:24:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AAC8D6B0087; Sun, 24 Mar 2024 22:24:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 974A96B0088; Sun, 24 Mar 2024 22:24:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 83E496B0085 for ; Sun, 24 Mar 2024 22:24:30 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1AF9216052C for ; Mon, 25 Mar 2024 02:24:30 +0000 (UTC) X-FDA: 81933967500.20.7B79607 Received: from szxga07-in.huawei.com (szxga07-in.huawei.com [45.249.212.35]) by imf02.hostedemail.com (Postfix) with ESMTP id C493980007 for ; Mon, 25 Mar 2024 02:24:26 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.35 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711333468; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Mv8f/THGw2FXgsOxf+6fUawsK0wTW3IngpBoq5hBaEU=; b=laX76LNctDOTXg403+QdbNt3rPLDChq2RxL308lyzYs4rMYqKODTtHWlZT2B6hlN3X2DX0 O85CBaLcVPOC5JblKVxEBlAa5MV92d/PY/w1+m9FMahShCW/NQCnKsJcm4zWtd9p1XMDuc SV7DboQ/mFTqdIoZ9gLxoMwDXlVh4TM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711333468; a=rsa-sha256; cv=none; b=Ylwa0FSpk68Fy9aTd3fkm3hOq3cKDd7SPrpiIvTa828z/az9V5LKzRjfYly8ofusD0/4sy pbU8f0WQ/mQHys9ekxhhhWA0iUoV53N5L/euHs68ER2Njx5vZCeeJFzIhOyKPRukqA/1eM eihKXakSh4baUWoUZhWFFcm3QD4RpUI= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.35 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com Received: from mail.maildlp.com (unknown [172.19.88.234]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4V2xWr29S0z1R77N; Mon, 25 Mar 2024 10:21:44 +0800 (CST) Received: from dggpeml500011.china.huawei.com (unknown [7.185.36.84]) by mail.maildlp.com (Postfix) with ESMTPS id 240C0140429; Mon, 25 Mar 2024 10:24:22 +0800 (CST) Received: from [10.174.179.13] (10.174.179.13) by dggpeml500011.china.huawei.com (7.185.36.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Mon, 25 Mar 2024 10:24:21 +0800 Message-ID: Date: Mon, 25 Mar 2024 10:24:21 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Subject: Re: [PATCH v2 1/2] mm/ksm: fix ksm exec support for prctl To: David Hildenbrand , , , , , , , References: <20240322060947.3254967-1-tujinjiang@huawei.com> <20240322060947.3254967-2-tujinjiang@huawei.com> <8b5e8d52-ab93-4e2e-aab7-43221f891aae@redhat.com> From: Jinjiang Tu In-Reply-To: <8b5e8d52-ab93-4e2e-aab7-43221f891aae@redhat.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.179.13] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To dggpeml500011.china.huawei.com (7.185.36.84) X-Stat-Signature: 1ap1egnhf8mp7394smupq39w5r9dortp X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: C493980007 X-Rspam-User: X-HE-Tag: 1711333466-368221 X-HE-Meta: U2FsdGVkX19dSTXknSHpX4yNcoDE/Els2CT37CM2tYMGhzrVReqL+H6pwLOZ8SjfNpyLDYTCLLJOTyR//ixNa+A93zAUmlZhPqSiDDxnX+zOqTof7rwfULg7V/D68OlKIp7cH0/UvQk58kQ7+df6F+/zpeiK6+0diSjUkpnYpGeh9gzwqaAgm3PFVC4GasVIqqXk4ZJNi+TbSerXUBJbAPn8GS+ReAS3HXaODoiSmR0CY3Ebo3u/8i5/3LYUvmwlL+l0npSXt8C1j4V3SYopQX2WipN7NKn1AWWyhVgsoEle3HwEn+wRzeHADJC+krPHikC/Wa2uwS5xl7b2qgHxWtizwc4MbRWgKLF+jL+//YUSSDpmwmc/7YHvRIbMEtvYyiWcCV+avjpykHvEXk/B6VrL5PxX1w4tijzgF+KytXCiy3StsVBtTzcNlifymaG1U46+hJNt+SdUAe+qIe//wYIGXjdVh6r7mFk2goXctXfpapJCVqpNro371JaHlPHGnwtEFJo4LjUnUsQANZ2igtT3WY4lQ0MeJYe9iKTx1mRfsbRMX0yP62cKRC8IZNA1yn3J9JhZQN8z5zSD84abciL+c4muJDVJYrArosMn02ERG02oGSgk81BbTSqdzWwqzQAPhf7dMvdVyHsltT0Hyav8+sNW++u7fiysZBS+6w43vs0SdWJ7s+B8J1fBzzurjGhWXt75fflCV9/Gxql9qOHlGEjKPiIfdIdeLy3VoBsDqaIvDYh4/R8oJhIbRO+jDk8SMIuyavZDc1BiW4TGUFtv/HK/3PIFhMvkM9pgbGC45O3lQA6IKUXLHNfSibHzJlzL9NuvR9C3GbU+NLkXdel0zrhPJrWK+71xv4cC0sCD9I/JhSx3mXQW6WgkWpAz6q7FpDWPXLcAUNgeFbAZI9stRcSvx2BgAQQ0Z/37QJu9OMo8I3XERsocK6YFj5HOZiQ58N87QBjNvydGRo8 NLdV96CM SrgXVqe4+UIMejOQowEZGOddTUeJLn4/1yXrIbiUKJJnr+aXXnnq1zYS3J48rthzY3KmIcw/BcejwdPZ8nlOgldTyyK7HYlKBh504fqcHdDvQIVXNehSDrfKpRAvmie85F9FRHrHAXY6YHZtQhl+mxO8hZY/tSPRaZeDi1qM8Es9dJt8xYEB7ZpalFYLBKVgFL2Pu4OqW/uuLHqdzqRGll/G9Lg== 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: 在 2024/3/22 17:02, David Hildenbrand 写道: > On 22.03.24 07:09, Jinjiang Tu wrote: >> commit 3c6f33b7273a ("mm/ksm: support fork/exec for prctl") inherits >> MMF_VM_MERGE_ANY flag when a task calls execve(). Howerver, it doesn't >> create the mm_slot, so ksmd will not try to scan this task. >> >> To fix it, allocate and add the mm_slot to ksm_mm_head in >> __bprm_mm_init() >> when the mm has MMF_VM_MERGE_ANY flag. >> >> Fixes: 3c6f33b7273a ("mm/ksm: support fork/exec for prctl") >> Signed-off-by: Jinjiang Tu >> --- >>   fs/exec.c           | 10 ++++++++++ >>   include/linux/ksm.h | 13 +++++++++++++ >>   2 files changed, 23 insertions(+) >> >> diff --git a/fs/exec.c b/fs/exec.c >> index ff6f26671cfc..66202d016a0a 100644 >> --- a/fs/exec.c >> +++ b/fs/exec.c >> @@ -67,6 +67,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include >>   #include >> @@ -267,6 +268,13 @@ static int __bprm_mm_init(struct linux_binprm >> *bprm) >>           goto err_free; >>       } >>   +    /* >> +     * Need to be called with mmap write lock >> +     * held, to avoid race with ksmd. >> +    */ >> +    if (ksm_execve(mm)) >> +        goto err_ksm; >> + > > But now, would we revert what insert_vm_struct() did? > > We're freeing the VMA later, but we might have accounted memory. > > > What would be cleaner is doing the ksm_execve() before the > insert_vm_struct(), and then cleaning up in case insert_vm_struct() > failed. In fact, ksm_execve() has been called before the insert_vm_struct() in this patch.