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 065CDC02181 for ; Wed, 22 Jan 2025 06:47:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EBB5280001; Wed, 22 Jan 2025 01:47:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8749A6B0088; Wed, 22 Jan 2025 01:47:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 71540280001; Wed, 22 Jan 2025 01:47:12 -0500 (EST) 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 4EDC26B0085 for ; Wed, 22 Jan 2025 01:47:12 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E6A4981385 for ; Wed, 22 Jan 2025 06:47:11 +0000 (UTC) X-FDA: 83034155862.07.2DE7F35 Received: from out30-124.freemail.mail.aliyun.com (out30-124.freemail.mail.aliyun.com [115.124.30.124]) by imf29.hostedemail.com (Postfix) with ESMTP id D978E120007 for ; Wed, 22 Jan 2025 06:47:09 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=sPkwIaxR; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf29.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.124 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737528430; a=rsa-sha256; cv=none; b=F/+xFXOw7xX/ixdaPCcinKQgFC4Rxyt1ziu/567ynQD8yln6tnANU+/K5W3xXh/Njo4h3Q LCTw+0cj7b5QCxz1EnXeDEtb5fUZFOhBle/xQXsCWETg9QEpvGNx4DgVXEmZcN5+/56sfc c24lMObxRacjoE5eV0fDtYBFEGDyv2k= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=sPkwIaxR; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf29.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.124 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737528430; 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:dkim-signature; bh=Yj/kRrfdeQuFUnIqHOTSK2NEbqA0lq2zs119rYyDO1k=; b=k/IAIqwhBDurs0loS6d0gmMvmyqZ3qz6Yqb5+Mk8PuNLTRHQb+teuVgpEUqhVPYgDbR/NY QNnW0YKhBTtWOHocRNMaldM+liFlkv2qHMMPiToVM8xo39clJGHdgHDW4TBblhrbylmpOj o9EVv764bic0BFht3F2QtrKBEJ2wRro= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1737528427; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=Yj/kRrfdeQuFUnIqHOTSK2NEbqA0lq2zs119rYyDO1k=; b=sPkwIaxRgHVFTUue0xXg19BtWA8p3faUM3rIOpTsiLP/sDGThUosIY/L9c/+gpDJ+ZwvHI8MIBnteJXC5glYUqOa/iNQUYtdK2HngzTpyKKCJG+0uFyFiMj6TahiHWg7QJwLW0WQp76QB8jDVUeq5j/kdzMztKky50fXE93PcHs= Received: from 30.74.144.123(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0WO7Ulvn_1737528425 cluster:ay36) by smtp.aliyun-inc.com; Wed, 22 Jan 2025 14:47:05 +0800 Message-ID: Date: Wed, 22 Jan 2025 14:47:05 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 03/10] selftests/mm: test splitting file-backed THP to any lower order. To: Zi Yan , linux-mm@kvack.org, Andrew Morton , "Kirill A . Shutemov" , "Matthew Wilcox (Oracle)" Cc: Ryan Roberts , Hugh Dickins , David Hildenbrand , Yang Shi , Miaohe Lin , Kefeng Wang , Yu Zhao , John Hubbard , linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org References: <20250116211042.741543-1-ziy@nvidia.com> <20250116211042.741543-4-ziy@nvidia.com> From: Baolin Wang In-Reply-To: <20250116211042.741543-4-ziy@nvidia.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: D978E120007 X-Stat-Signature: sxn9kjrsf8r5uqdkznzauqykhay6w7qh X-HE-Tag: 1737528429-347774 X-HE-Meta: U2FsdGVkX1+rUt+gsT6PuYx6+SDMBInVk3T1EFmrI1LCsXnLm6Hv+qZATelt7ehAhqb083i/U44nFXV7KGVrTqGbC8UwrgiT8WYQ6NB910DhqObJXWal5L7PbNd2r4r6OCrRcYax3zD7hH6uf/8ttrN7icRNWmdz1wXmywiN3v79HEb/gaQwM8W40VUzc/rkRJ0Hj+rVKZZCSTZa37nl2KLiS1K+rxEYRPKA9hfUwjCiioD+Y+CM/jxxB9dI9O3Jv2XQ+iE50rOwkUQRSiB4xD9XFVT73EiKzEqYuJUNG63VxFD5XtxIJWLBiB1POKxWAXytoO0FGfcOVbF/GLd9vZIMLzBPMCMQfJ1MPN3qP892teGDvZd+oL+flIfwXziletIErv5QBxZ8Z02OBor9O8sBBEFRqBa+NGTLOSroaXMdCJn2in7TiJwa1KQYG7Cpe8WZJ+mCgdDtzeu5008XsBigKO8K+NC2iEPmeMeL5eMkhDqQ2TeAWbwMEOxlQCHn5bTYvG2kpxNJn8rvgeh6+9b+90JwSGGFRHDkDdbsiTxwicR4cikwTUc/01Rfe8NVLbMg9eQkGvkuHTOfnQjBdnZjbgzGWh7L+CH2+Cm9PtYoYau9qqUHcCA11aK3WsIO67qU0/qKWr0qFpBaAecER3b+44DC/1vHopoYN7BaTJ5FFlIzIzemSxxSOpT8T8KIkSb/v2a7TMHyXHI0sxo/XO5Hzqr1/ejCKrn6pyQqZpPJsaXiwwvDQMR4Jb7MAxF7NDO6ZiFNGd9IXCcZ9ANm0AZMm7uAzRiuX9kwdyoqkZpnLrvAKg/bpodVMJ54Bs92WFwfpe5bnTdrtqiZQwafy1+Gkb8WIEfcqtt45ouTUDfRkCgHjWydjHR6ktKx75M9YYZ80XRje4M0nki0kBzMPPsTVvZHSprAholaZRrr+v+0zeWgfZe83GgHwT8071W5QFvubYEKW38Kmtx58F1 ni/UGmNA EE308x8MKHydTj9/vzXB1886pZE21IFIKT1mU1RNVKYTgu7OMXq+4WP1bfOf0uARGOvb1LJK2/vVa4Ct7x6bCEbWBrST0eQZEJOs1+/rYjt9NO8bXi2t5mFGhRpoat2FI1l8KfUyem7atmZnta4PfAywIUiEFjeCBVYV5CeYVvdVL6Mfyxmr83Z5NAJPutO1qcLKjAW9yQeSHIijLBbVGXjIwrcu2kpfIaufwSkIXOTQoX2PopXJH9itvniCaxs9ZgleLHAWdOIFk+L2+MUwCtgoQZCa0oyMQchrgif3SEGQ2f9s= 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/1/17 05:10, Zi Yan wrote: > Now split_huge_page*() supports shmem THP split to any lower order. > Test it. > > The test now reads file content out after split to check if the split > corrupts the file data. > > Signed-off-by: Zi Yan LGTM. Reviewed-by: Baolin Wang Tested-by: Baolin Wang > --- > .../selftests/mm/split_huge_page_test.c | 30 ++++++++++++++----- > 1 file changed, 23 insertions(+), 7 deletions(-) > > diff --git a/tools/testing/selftests/mm/split_huge_page_test.c b/tools/testing/selftests/mm/split_huge_page_test.c > index eccaa347140b..766c1f3a1d78 100644 > --- a/tools/testing/selftests/mm/split_huge_page_test.c > +++ b/tools/testing/selftests/mm/split_huge_page_test.c > @@ -261,14 +261,16 @@ void split_pte_mapped_thp(void) > close(kpageflags_fd); > } > > -void split_file_backed_thp(void) > +void split_file_backed_thp(int order) > { > int status; > int fd, shmem_sysctl_fd; > ssize_t num_written, num_read; > char tmpfs_template[] = "/tmp/thp_split_XXXXXX"; > const char *tmpfs_loc = mkdtemp(tmpfs_template); > - char testfile[INPUT_MAX], sysctl_buf[INPUT_MAX] = {0}; > + char testfile[INPUT_MAX]; > + char sysctl_buf[INPUT_MAX] = {0}; > + char file_buf[INPUT_MAX] = {0}; > uint64_t pgoff_start = 0, pgoff_end = 1024; > const char *shmem_sysctl = "/sys/kernel/mm/transparent_hugepage/shmem_enabled"; > char *opt1, *opt2; > @@ -314,7 +316,7 @@ void split_file_backed_thp(void) > ksft_exit_fail_msg("Fail to create file-backed THP split testing file\n"); > } > > - fd = open(testfile, O_CREAT|O_WRONLY, 0664); > + fd = open(testfile, O_CREAT|O_RDWR, 0664); > if (fd == -1) { > ksft_perror("Cannot open testing file"); > goto cleanup; > @@ -322,7 +324,6 @@ void split_file_backed_thp(void) > > /* write something to the file, so a file-backed THP can be allocated */ > num_written = write(fd, tmpfs_loc, strlen(tmpfs_loc) + 1); > - close(fd); > > if (num_written < 1) { > ksft_perror("Fail to write data to testing file"); > @@ -330,8 +331,22 @@ void split_file_backed_thp(void) > } > > /* split the file-backed THP */ > - write_debugfs(PATH_FMT, testfile, pgoff_start, pgoff_end, 0); > + write_debugfs(PATH_FMT, testfile, pgoff_start, pgoff_end, order); > + > + /* check file content after split */ > + num_read = lseek(fd, 0, SEEK_SET); > + if (num_read == -1) { > + ksft_perror("Cannot lseek file"); > + goto cleanup; > + } > > + num_read = read(fd, file_buf, num_written); > + if (num_read < 1 || strncmp(file_buf, tmpfs_loc, num_read)) { > + ksft_print_msg("File content changed, origin: %s, now: %s\n", tmpfs_loc, file_buf); > + goto cleanup; > + } > + > + close(fd); > status = unlink(testfile); > if (status) { > ksft_perror("Cannot remove testing file"); > @@ -520,7 +535,7 @@ int main(int argc, char **argv) > if (argc > 1) > optional_xfs_path = argv[1]; > > - ksft_set_plan(1+8+2+9); > + ksft_set_plan(1+8+1+9+9); > > pagesize = getpagesize(); > pageshift = ffs(pagesize) - 1; > @@ -537,7 +552,8 @@ int main(int argc, char **argv) > split_pmd_thp_to_order(i); > > split_pte_mapped_thp(); > - split_file_backed_thp(); > + for (i = 0; i < 9; i++) > + split_file_backed_thp(i); > > created_tmp = prepare_thp_fs(optional_xfs_path, fs_loc_template, > &fs_loc);