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 4131DC5AD49 for ; Tue, 3 Jun 2025 07:08:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D266C6B03BD; Tue, 3 Jun 2025 03:08:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CD70B6B03BE; Tue, 3 Jun 2025 03:08:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BEBF26B03BF; Tue, 3 Jun 2025 03:08:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 9FF026B03BD for ; Tue, 3 Jun 2025 03:08:34 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 1E5D31A0770 for ; Tue, 3 Jun 2025 07:08:34 +0000 (UTC) X-FDA: 83513211348.27.5AB3A24 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by imf08.hostedemail.com (Postfix) with ESMTP id 2F015160010 for ; Tue, 3 Jun 2025 07:08:28 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf08.hostedemail.com: domain of pulehui@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=pulehui@huaweicloud.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748934512; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DTLOzeCGWX3LqTko7Av5aycYpBz13cCDrCMX31kUjdQ=; b=Pbrj7kPs8ECMw5vOl0fUh+vfdoSLFrREj6Q/oK6tzH+/9BJhJjo85q+bQgyjd/Pop8EIkM KnDEWwOO/sUm/K/76IT3xHo/u9EeJuvt2oc7mZ92l8y1QLMuTaCaGpXUCKnkgQhsCDuW0M qLk50PUvvap+ANL4YnKR0zO7zZLInVc= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf08.hostedemail.com: domain of pulehui@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=pulehui@huaweicloud.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748934512; a=rsa-sha256; cv=none; b=OAgFJx0ZAYsCl6CBW5ZCIP6DSN+CPu7R4u8l2wKB6XltsuwRB67fIuklCWH6InJPOWKkbK e0C3axCHOdh7xHBz3EseYI+7xbIwsZdV0eID9oIXBeHNWJ3bu2LvH00HzD0V4WjAiD6AX0 jVam6xm5t0dAi8qFJmtphLvZO2Gfhr4= Received: from mail.maildlp.com (unknown [172.19.163.235]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4bBMHs4PHYzKHMtQ for ; Tue, 3 Jun 2025 15:08:25 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.75]) by mail.maildlp.com (Postfix) with ESMTP id 035F11A0CBC for ; Tue, 3 Jun 2025 15:08:24 +0800 (CST) Received: from [10.67.109.184] (unknown [10.67.109.184]) by APP2 (Coremail) with SMTP id Syh0CgAnMGNmnz5otIT5OA--.20294S2; Tue, 03 Jun 2025 15:08:23 +0800 (CST) Message-ID: Date: Tue, 3 Jun 2025 15:08:22 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 4/4] selftests/mm: Add test about uprobe pte be orphan during vma merge To: Lorenzo Stoakes Cc: mhiramat@kernel.org, oleg@redhat.com, peterz@infradead.org, akpm@linux-foundation.org, Liam.Howlett@oracle.com, vbabka@suse.cz, jannh@google.com, pfalcato@suse.de, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, pulehui@huawei.com References: <20250529155650.4017699-1-pulehui@huaweicloud.com> <20250529155650.4017699-5-pulehui@huaweicloud.com> <9117d6d8-df01-4949-a695-29cafe7fe65f@lucifer.local> Content-Language: en-US From: Pu Lehui In-Reply-To: <9117d6d8-df01-4949-a695-29cafe7fe65f@lucifer.local> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CM-TRANSID:Syh0CgAnMGNmnz5otIT5OA--.20294S2 X-Coremail-Antispam: 1UD129KBjvJXoWxZw1rtrWrWF4kJry7Kry3urg_yoW5ArWkp3 WkA3Z0yF4xtF13Jw1avr909a1fKrs3JF42y34fXFy8ZrnFvr93GF4IkFWYkFW8WrWv9r1r uw45JrZ3Wr4UJFJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUv0b4IE77IF4wAFF20E14v26r4j6ryUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x 0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG 6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFV Cjc4AY6r1j6r4UM4x0Y48IcVAKI48JM4IIrI8v6xkF7I0E8cxan2IY04v7MxkF7I0En4kS 14v26r1q6r43MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I 8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8 ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x 0267AKxVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_ Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU1 7KsUUUUUU== X-CM-SenderInfo: psxovxtxl6x35dzhxuhorxvhhfrp/ X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 2F015160010 X-Stat-Signature: uecjjoo9yy84nz9eju5y17befju8f4tx X-Rspam-User: X-HE-Tag: 1748934508-951420 X-HE-Meta: U2FsdGVkX19o9MsixPYVx1RuoMT/x3/94gb/RmsoMaKX6rN7GfdnyUVStrP1UV5S4g6/Yn2eEX/irPSkAuOcFumJoVTkoAngBP7sJzcFYSN/sQlmzV58WZhvzCq7zL12J2n3iO55vz9vKNOcA+prJeV25gZ1DieZYSWWHAX6/BOsZTDdfjJzsYJnSC5g1XUxJ3lKW5d2/JR/aka5gnaBS6zVs3EYZTO/qmOO3NYoPjcBUooPu490XcvUDhpY9E7qYZ9yNUpYUH45gf74J7jJM47qxKjChdTkGWh0U5hGpXCgzyLv7e85Ls6FIAAl6OxQ9hjVDHVeerZ1HeXdrw0hF223lSKYOEr/baskBvfdNP8uDSgO7WIOU9MGy+iXsp6C7apzQoSZ+Iv3i6O0In98GBCw1yiZM7l5ZK1yHTpY7cd04xUxu74DMxWvKXvZSXmPlR6wxiMlUGq1KsL5Kzud0dEOfPDA+EHvIHWp3fPSU42rn91wB1i/XAuplK+adzFcmY2os+GUb2WaxmySWldyQm6dFQhnARGtHhQ+JB0adq0hBSZA5nvmeJCODCPxsttHDUHFaD/eeBwVLVRlQlMKSQVXHFceBPBGgn4SJ67bvaJJUeFNxZBEEpyZIbT7GOtgSLgvnDP8emPaZwiVNK5fZbo849mVumZbXAZ+2ZhCneyY5sPb7SsLr8F1so5b+URW4M0408hhPD6F47pKQhhPsUb6fZDjzL3XyJjJy8TRI7BXVWEkKS3PcVGKRoAbeGVHqpewHzuCARZjS1Hn+Lyo6178p2nw/ZgEBNqwegcIRRRwwSt9JWIALOCQB99v19A0TsMjigUpsvW0YC7wZO85aKTO0P53XdtXP9xUybQlLbjXpS18HWBLsqz/LrLt3sNb7YQLj3KWckCrdV9Mdw5sJhFmIJH4jF1XHrPGWisySoSv4h+fLWT8ZmG2HQy+xjuVU8uXtBWofdnRQiaeBVU ohyHL6Iv QCGYVKrzPqMoZTR+/xEmogYHlmAtYt0KCXdyhn+Wbe3yuwukesQqdpt0xw7krCY3GMH3+zJUbYnQGVp2CmBR1Z55ekZV/Fcb5o/y0HkqGcEO7TQh72/jhaYZewKhDcb09xPUfzqIo98SCf5lqF1N4mlZ5LbXr3UFx/dwyqeRha7L1cOw31TmEwKa4KQoS9zdirc1LHvvce5mbeKYyuDOjLYPzit6TmAIIggHRLFzjuUyFyw+6AGsrpPfqmw== 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: On 2025/5/30 19:32, Lorenzo Stoakes wrote: > On Thu, May 29, 2025 at 03:56:50PM +0000, Pu Lehui wrote: >> From: Pu Lehui >> >> Add test about uprobe pte be orphan during vma merge. >> >> Signed-off-by: Pu Lehui >> --- >> tools/testing/selftests/mm/merge.c | 42 ++++++++++++++++++++++++++++++ >> 1 file changed, 42 insertions(+) >> >> diff --git a/tools/testing/selftests/mm/merge.c b/tools/testing/selftests/mm/merge.c >> index c76646cdf6e6..8e1f38d23384 100644 >> --- a/tools/testing/selftests/mm/merge.c >> +++ b/tools/testing/selftests/mm/merge.c >> @@ -2,11 +2,13 @@ >> >> #define _GNU_SOURCE >> #include "../kselftest_harness.h" >> +#include >> #include >> #include >> #include >> #include >> #include >> +#include >> #include "vm_util.h" > > Need to include sys/syscall.h... > >> >> FIXTURE(merge) >> @@ -452,4 +454,44 @@ TEST_F(merge, forked_source_vma) >> ASSERT_EQ(procmap->query.vma_end, (unsigned long)ptr2 + 5 * page_size); >> } >> >> +TEST_F(merge, handle_uprobe_upon_merged_vma) >> +{ >> + const size_t attr_sz = sizeof(struct perf_event_attr); >> + unsigned int page_size = self->page_size; >> + const char *probe_file = "./foo"; >> + char *carveout = self->carveout; >> + struct perf_event_attr attr; >> + unsigned long type; >> + void *ptr1, *ptr2; >> + int fd; >> + >> + fd = open(probe_file, O_RDWR|O_CREAT, 0600); >> + ASSERT_GE(fd, 0); >> + >> + ASSERT_EQ(ftruncate(fd, page_size), 0); >> + ASSERT_EQ(read_sysfs("/sys/bus/event_source/devices/uprobe/type", &type), 0); >> + >> + memset(&attr, 0, attr_sz); >> + attr.size = attr_sz; >> + attr.type = type; >> + attr.config1 = (__u64)(long)probe_file; >> + attr.config2 = 0x0; >> + >> + ASSERT_GE(syscall(__NR_perf_event_open, &attr, 0, -1, -1, 0), 0); > > ...Because this results in: > > In file included from merge.c:4: > merge.c: In function ‘merge_handle_uprobe_upon_merged_vma’: > merge.c:480:27: error: ‘__NR_perf_event_open’ undeclared (first use in this function) > 480 | ASSERT_GE(syscall(__NR_perf_event_open, &attr, 0, -1, -1, 0), 0); > I did not encounter this problem when compiling in the tools/testing/selftests/mm directory, but in any case, adding the sys/syscall.h header file makes sense. > Otherwise :>) > >> + >> + ptr1 = mmap(&carveout[page_size], 10 * page_size, PROT_EXEC, >> + MAP_PRIVATE | MAP_FIXED, fd, 0); >> + ASSERT_NE(ptr1, MAP_FAILED); >> + >> + ptr2 = mremap(ptr1, page_size, 2 * page_size, >> + MREMAP_MAYMOVE | MREMAP_FIXED, ptr1 + 5 * page_size); >> + ASSERT_NE(ptr2, MAP_FAILED); >> + >> + ASSERT_NE(mremap(ptr2, page_size, page_size, >> + MREMAP_MAYMOVE | MREMAP_FIXED, ptr1), MAP_FAILED); >> + >> + close(fd); >> + remove(probe_file); >> +} >> + >> TEST_HARNESS_MAIN >> -- >> 2.34.1 >>