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 0F18AC83033 for ; Mon, 30 Jun 2025 20:47:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 79B536B00AF; Mon, 30 Jun 2025 16:47:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 74C316B00B0; Mon, 30 Jun 2025 16:47:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 689596B00B8; Mon, 30 Jun 2025 16:47:51 -0400 (EDT) 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 58DAE6B00AF for ; Mon, 30 Jun 2025 16:47:51 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id E2A5A140162 for ; Mon, 30 Jun 2025 20:47:50 +0000 (UTC) X-FDA: 83613253500.20.5EC90C5 Received: from mail-yb1-f178.google.com (mail-yb1-f178.google.com [209.85.219.178]) by imf21.hostedemail.com (Postfix) with ESMTP id 107391C0008 for ; Mon, 30 Jun 2025 20:47:48 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=EWJt3kNK; spf=pass (imf21.hostedemail.com: domain of joshua.hahnjy@gmail.com designates 209.85.219.178 as permitted sender) smtp.mailfrom=joshua.hahnjy@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751316469; 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=luntcRknwz6cxo7wxJHZIgNu/w/o1CsgItFUyxf5d4Q=; b=pXTl6UdzIBB0NadTw8ZkabFalgC8UWynNUSHMpgkMWJSH6jUMSUpGmoAOy2z+E1Syth6ls xbQ9GGnbuBO5GaLZ30drHrvrWgHneIUI7wBjaN6Pa6WnP8mb5fLfoS16RW1myGsxmkN9y9 aujDy+5fDfq/pswQM4b1lMCUKo9S5cw= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=EWJt3kNK; spf=pass (imf21.hostedemail.com: domain of joshua.hahnjy@gmail.com designates 209.85.219.178 as permitted sender) smtp.mailfrom=joshua.hahnjy@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751316469; a=rsa-sha256; cv=none; b=UqMB8W8aIV5t+C0W/3X0/42yQ5OgkQPG2fXR9zDWh2GHedSfM0Y21fSP5g6YQizBOsFOdT r7jC5InnXXhwyWmwtiwi2btAUV0kqupxezrdM6D3rX1Piat8oRmTsFjFX2WNcWQ9S/bLO/ XdwtHWOgzoPYSJLKpPOjHvL3mFAkyqs= Received: by mail-yb1-f178.google.com with SMTP id 3f1490d57ef6-e7db5c13088so4122818276.1 for ; Mon, 30 Jun 2025 13:47:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751316468; x=1751921268; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=luntcRknwz6cxo7wxJHZIgNu/w/o1CsgItFUyxf5d4Q=; b=EWJt3kNKECxkI2OVgLMHYKkKHA11dBXiC5DVFQF0t1zBGf2pjDjZDl9NpRxVXfN0sf YYWPxF9II6QhQ6co70rphOQJ/CVk3dke7DsH6nYUShcO2IDK4HitukQZ6yXEJNZTcB24 z+4ihJUACfVyLVY1fjhaBle7nu6bagt7B1EcW79x/rn5kSgJvs6oQhiGv7oSfwn86zTB bUUo2hyvm8Z9No30iQRkz5XwpirNzoLP8by9GuikHos6X88IcS4DEQuEMy7cAUDFUhdI /3JatDsqOEW6KvPqw5upXzvYqY9eRcLKfHLmwG1ZME10MhN4soMpTYBM08HcY0R3u1J6 tXQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751316468; x=1751921268; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=luntcRknwz6cxo7wxJHZIgNu/w/o1CsgItFUyxf5d4Q=; b=Ax8lKE38dDWhbSt1RoSsMEi9LbXo0jPv0tafydN8pbxqOYQ8U3XfrxM+1A4R/P+qG/ zSBPbz2DYquZD4+Z2JScsNzKidXCFS4HyfAFairx2WAxGhETnk5dna2RoiZyHJHBsZdf PK83naRM6sowAzApHJpVxPILe8MkJ6H0dqhpjpDCLnMxZGVSYru6ozYjQf5IpnS1Kyi7 /sBFuricYm8AY0M2eR5nkkPOFRJJoQWftF1DBYSbHwqDQ0ho3oiYjPO3fkN292yKULak tAV+5tyX/63Imkuqnjwzdmb2epJU4d//228cvqF77Goy/JyItwRDo3nGSBYrbYGXCpcj ry+w== X-Forwarded-Encrypted: i=1; AJvYcCWqofRpcrSyh2GV6qPKuqbriso2Qxgc8JPNYrz0X4VIyP95VR5ftPRaPDGPTsaKXK6EBw9SZQGsOg==@kvack.org X-Gm-Message-State: AOJu0YyZwcU1UeXSip0JaV0lYquPFxe93TEm7PChzEWfXnsAjLq98T6e Q3nwuk3J1MxlPZ6uKPfYOphHaZTd57+HtgI/wRoQY0YtiUtT7m0etRy5 X-Gm-Gg: ASbGnctYw4DL5SmBTOmwSnsjirDZOr2cSTSJFGtNxAg4Yf7w4ZVlqfMvB84yWJfEKT2 1i/8JxjWSx9lqDo71bT8XqYcsxZF8o39LoUTKZd5EWDE5yHTAo3Ygzayd6M+qWSLRMiD0f+0udn WRi/2JveFhHoxO8/QMlTfFr4uMP8ZuAZIgZWKS+P2GuzDUDco3LKXkMDikzmt2zTNC7YTCJwhyM kx2rE/JeJwmBjs5NnLJplqN2MUTvUZ0EB8qKByRNIZtZZ6jwUcrS4wIjOjGsHRa+1zoX9lLruZC 5U2M+HpLDpqq8Xn4tHqd0tXm2xc84kC8rMX8B9W+FgPYoWNeQzWXzh1qX63mgA== X-Google-Smtp-Source: AGHT+IHquH1SFomNj3I5uzYfR2v3NP5BKEXajHPCZ5A3PFOxIUkmSJNhnAqoanz5VhUyME4mdqYpxw== X-Received: by 2002:a05:6902:18d0:b0:e87:aa7f:6e15 with SMTP id 3f1490d57ef6-e896ee91671mr1733295276.4.1751316466280; Mon, 30 Jun 2025 13:47:46 -0700 (PDT) Received: from localhost ([2a03:2880:25ff:5b::]) by smtp.gmail.com with ESMTPSA id 3f1490d57ef6-e87a6be3ce5sm2560516276.38.2025.06.30.13.47.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 13:47:45 -0700 (PDT) From: Joshua Hahn To: Suresh K C Cc: nphamcs@gmail.com, hannes@cmpxchg.org, shuah@kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] selftests: cachestat: add tests for mmap Date: Mon, 30 Jun 2025 13:47:43 -0700 Message-ID: <20250630204744.1581380-1-joshua.hahnjy@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250630180803.12866-1-suresh.k.chandrappa@gmail.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 107391C0008 X-Stat-Signature: sour3i9b61wdnwspg7fjdfjifabo9po8 X-HE-Tag: 1751316468-489089 X-HE-Meta: U2FsdGVkX1+VbsVlQlk/XhOC5TjeJjxOIX+S0Y1CRr2OGtyWavaaAFy+9OdezixuKdJsjEdkhZ93Z4iiLdNtE8gYFjDg7kpNfgrjrfgiZhKdqy3N6mAMS7HXTMGGgnlkXf+jEIJ++lsufyd4PtaltMVUVwUOx5sWl+jynA2AXiV2hL0dIaf8MYrJIYaIzwF2kpIykBOsNpFNZpSzRijLoKri0dA8e5kIjHbXWtWU6ypA8egq2UXcjkVxUB017AmUt31kmtZ39qRVASTMMsk5DVQFlr9wkK9NhPyuIJ3TL2ljDjENj+9tZ2RtKgrxL7cIMiXb8nG45wAklRDPYhO55ekNLmMKgSBMoQCG3OxL0OjQMZsF2VV27ZDKJTC3WzGtgHKVfUMj7LUxzyoYX29IT5EKPlm5VcV/BNU24DyerhIMpJvc7qAMuO5kBAXecvhWV0nuba4AzSEpYVAk1+yukhiT5geO/sw6BXqTlfyxz8brjaDGDBGP0q6QlcKA9+rj62gczkl9NrklnUH1k/BgpBOxvC/3/amPlkzLA9C6SQNoJDCj8TOCLE7kxb23hDY7a1hHK+btgodRBahB/EaIOZyEPn8RGiYzA1kiolZkX99lUXdFlk3GzRwxl/KVIjKpaWfNvnl9D4wOanGEeJBSSE6JXcrlIHvHN4/k9JIL7RVZhiZ8dHm2ccSIgXnsaux9Njf6atEE0dyG3EKoZHrRtWvNx1RDPkypoK9060cHy517i/U4MRLukXM+VsM9HFckCJMhS/J4iXz/FdxZcgutdqjmD0EW2S6vckI4/D6nw/KmR/rQo3UE7xeUyjXMmjIYwTfCXSP262/2wtL6pLnbHnuqqfOf4FSYoVGlTBKdHJUER9ZCEyuvjRhqcrtvskXzcEaP7RuKhycfMB+cjeOff2vAUHjbulMRMctAJe9+eWsrHqUXdQQpfM5EP1gHi4O5o5JZaG1VYn0LePuwZ4r jh3tZbti HhxplmxJLXJ9DgfHaSpQ0iqos6yEB2A6X/32FWMlVXM/QcBiwfykAF1ecsBw6pRmGFUAZlveKOEov/2t63EkXLLjLAl0AESdYQRPj8XNGKtIdbARdBxYK9ItaDNl9oNNkNSDXLk/w07EHsZDzHCK85//uKqqTOcqEhGmxsZYdmeAoQ2SWIp43GCOMFmoNqUaC+c7AFbipgb7BeWmyxVCjwB9+eoZNMlTTlWdRwhVtMrE8ItxHYmjT7qqCafabazI5VNzC1NzOtXkfdBm88nLwrp1DGqY2LEDeqX3+G4QdwCkrzi2tKSetems1yO29LvhqPDTmYZCWEDeirTbBhT7VcJ8e3vJoGCOPHwR6jrMsWE4TP9PwY/Ly2/bMRQg0VzChOnqBiZcJCt4jelxUDh1PQx0eM4/DN1s1VBXIQ19wrkRbveBc+AUv9ugMh7Hnd+wOCiiVuLC1BkRDi+PkmBFSp+H6parOUz6xyd/h5eY09SPecPRfRkxcyVvYSbglvGBYgCApobuEM36x1FV+QTrMxWQ9nY5LBzXmUWhq8+CKofIaBu2xEuKkIuDHE6b9US01ycu3jo2d/nMQkoq6Fdcb9gTmlQ== 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 Mon, 30 Jun 2025 23:38:03 +0530 Suresh K C wrote: > From: Suresh K C > > Add a test case to verify cachestat behavior with memory-mapped files > using mmap(). This ensures that pages accessed via mmap are correctly > accounted for in the page cache. > > Tested on x86_64 with default kernel config Hi Suresh, Thank you for writing this patch! I'll let Nhat or Johannes comment more on the patch, but just had a few thoughts. Before going into the code, I wanted to note that it would be helpful in the future to note where this patch comes from. I saw there were a few iterations of this before, so it would help reviewers track what changed between the versions and what the motivation for new versions are. [...snip...] > - ksft_print_msg("Unable to create shmem file.\n"); > + ksft_print_msg("Unable to create file.\n"); > ret = false; > goto out; Maybe we don't want to lose information about this -- it would be helpful to see why the test failed. It doesn't seem like there are any other indicators that would let users know if it was shmem or mmap that failed, so users would basically be guessing as to which of these two test failed. (And the same feedback aplies to the next two print statements) > } > > if (ftruncate(fd, filesize)) { > - ksft_print_msg("Unable to truncate shmem file.\n"); > + ksft_print_msg("Unable to truncate file.\n"); > ret = false; > goto close_fd; > } > > if (!write_exactly(fd, filesize)) { > - ksft_print_msg("Unable to write to shmem file.\n"); > + ksft_print_msg("Unable to write to file.\n"); > ret = false; > goto close_fd; > } I'm curious if we need this part down below. It seems like we already call write_exactly above, which should fill the file descriptor with random things up to filesize. Maybe it makes more sense to have these two options (write_exactly vs. directly modifying the contents) in a switch statement? It seems a bit redundant to do both for FILE_MMAP. > + if (type == FILE_MMAP){ > + char *map = mmap(NULL, filesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); > + if (map == MAP_FAILED) { > + ksft_print_msg("mmap failed.\n"); > + ret = false; > + goto close_fd; > + } > + for (int i = 0; i < filesize; i++) { > + map[i] = 'A'; > + } > + map[filesize - 1] = 'X'; I'm also curious what the point of having the last character be different here. It doesn't seem like there is any validation code to check the contents of the file, so it seems a bit redundant to me as well. Have a great day! Joshua Sent using hkml (https://github.com/sjp38/hackermail)