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 4BA96C369D3 for ; Thu, 24 Apr 2025 01:22:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 56F686B0006; Wed, 23 Apr 2025 21:22:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 51E226B0007; Wed, 23 Apr 2025 21:22:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3E5956B0008; Wed, 23 Apr 2025 21:22:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 202606B0006 for ; Wed, 23 Apr 2025 21:22:22 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 2F642160BB5 for ; Thu, 24 Apr 2025 01:22:23 +0000 (UTC) X-FDA: 83367186966.28.34544F7 Received: from out30-119.freemail.mail.aliyun.com (out30-119.freemail.mail.aliyun.com [115.124.30.119]) by imf29.hostedemail.com (Postfix) with ESMTP id ADA05120003 for ; Thu, 24 Apr 2025 01:22:20 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=cCHZFTlE; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf29.hostedemail.com: domain of feng.tang@linux.alibaba.com designates 115.124.30.119 as permitted sender) smtp.mailfrom=feng.tang@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745457741; a=rsa-sha256; cv=none; b=740O52CaDgKiTegj6lQu6Q+4JgC3AQgfainCuYK2987gBOObnN8SkESULRaEaZkLNu7F6D rq3kJfyvbV9mrnLSSRSlrBA0A+rQrhWSrT2VsnLrVp3j00g8FXXrrTUoyEEe1M3M3Ujy4+ CoWl7Ie/Mll9tCTEJKE1dKsmOfH8u6E= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=cCHZFTlE; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf29.hostedemail.com: domain of feng.tang@linux.alibaba.com designates 115.124.30.119 as permitted sender) smtp.mailfrom=feng.tang@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745457741; 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:dkim-signature; bh=KX1QHUDprEsYXUHZIvm/vNoDUcOH0o5aczS6FmAUxwE=; b=glkdhhkvW39XyVIAEpANtkDBjFIT3kmXSHyLMNFBasGeDmeoulhTve4DrWTIuOG5PL+8Ki oRUSAyd0S9YKtB+I0WFK3XX8d163qqIOpUa+SfWAS5vKzyeG8gaPJesg6sS4Rj8+yFnrUt XCErCQNQnMmjBUZc1eJAlLYh3CzG6fA= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1745457737; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type; bh=KX1QHUDprEsYXUHZIvm/vNoDUcOH0o5aczS6FmAUxwE=; b=cCHZFTlEzGOR9DJuld5lKogk6aNTcdsg+umPd4EJYpxpPzVPj/2UkvihkbnCFAPkdyStfgxu2kYA6JKI3CE3VsdKGutdh3MSUR+qSDDZn5zLqc8yMgyDoLd1ZspzqVztLc8kq/SQME1UDP9sCi+lpIg1rdjcB5x4COD5ARegEzc= Received: from localhost(mailfrom:feng.tang@linux.alibaba.com fp:SMTPD_---0WXwD2Nt_1745457736 cluster:ay36) by smtp.aliyun-inc.com; Thu, 24 Apr 2025 09:22:16 +0800 Date: Thu, 24 Apr 2025 09:22:15 +0800 From: Feng Tang To: Dev Jain Cc: Andrew Morton , Shuah Khan , Sri Jayaramappa , linux-mm@kvack.org, linux-kselftest@vger.kernel.org, baolin.wang@linux.alibaba.com Subject: Re: [PATCH] selftests/mm: compaction_test: Support platform with huge mount of memory Message-ID: References: <20250423103645.2758-1-feng.tang@linux.alibaba.com> <9260687a-0126-412c-aff2-9a5b358eaca9@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <9260687a-0126-412c-aff2-9a5b358eaca9@arm.com> X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: ADA05120003 X-Stat-Signature: 9gheotc15j9eo4rxbkte7r91753oc7ez X-Rspam-User: X-HE-Tag: 1745457740-599834 X-HE-Meta: U2FsdGVkX19b5d+nqa5Lbc9q/XLJUPhxgFYns1p/kzmVJ5JW60Ig17JDkEPARixEUw9KNtz3uzZRhrt7H+jpNWTulnurCuc0P/RSg6BhdNwEHVoW3fx0dNHvDTRIW9UawUpHfNeksrY/19QuqdRtxP4/eg+I7qpTFprQeYVXPv+Cs0qpmRZeqJoyNY1PWAMJWpT8IyKUc/k66TXJ4RbrY9gOCfwQNmjxEnBzY/v3FyzMODtwuMIvLqAaeJ7eSp2zssS4PhB9PXDrNxdBgPura/37rHn/3B6+nn5+hLLws3Hw4rgsnh9CrSOjcSUJzJHZ8vGnEEIwsgFXaEHAgZSfygzPHobt1dVF2qiLqCrpDnmaXqB+EhlTnYMs1EIWDuzNjHZYKICGO1wOV9zz7DJQoJ6AKVRW+hjuVOMtbNJBLT2lZ8EFOt5+Dcu84G9WBWsi4dRZ4/l7dPVPhGsfyclp8qCTuTc2jWtvL5iOQpU7Gj7lL56MO3+87id41kfBMMtJu6c4G66nSUolKmozhL3qu8K5z6t9i+s8TVnXls9ypsJfvS6kSium2SqQP7i4FQ4xhbI/OuAIDCkOvSQWgTjWBPEi4MAYS2Soim2lqAV/E88JAzitnHjL1HBRAcR+YdfTUINd9aDAaKaSrzM3ap4SfUnmtOOtr//NadkgaWVHTMf+LvYOCqvQJJvZ8Ha2yFS8ZphvoqoVHBSzVC9Mc5FonRZ7Ok9gTVjMA79xAkPG2K5XqK83PaAoxC3GYOu2D/RWeGi/3iV3Fp/Y00YBSgDT7a9mGmKBmYWo8vb6K3glFWDKh93WSg3Ef6zXSFSXTQIfPLx29bAaIoGeuNauthLHC3uxWVynOflgv40Fgb9NNNE+jRFxckNTeH8Ub/rR+K1kwr3pbEjj2dKv9zSyRFNXWnPbbJPKZp5GyOY0uG6rycUIQAuUOGFw+gtNFBct3wGtpJDPRIPokwdVcI8gLkM DyuDeR/C aZ4KqnqeGgndY9pPf7VgFErVcKhhOydvq/iu1QaDT3dJKfRswKPHFQm+GHAq1UgMOJDfKuw7e4gZj27q9sYq3lEMLQhRFt+kzor4ZKAd2y2SV2pTpzAwhsFYwBeCpDNrZu8QZoveuG8GhDUcBq8Z193g0YlhPmHBABk23u7zMi8J7LiO25b74An1Juu9cpuDIIiTYrJS529WqCITCkV7Adh1eYVFvEwVbB2UaYQ5+0tLyk+52vWbTz/qkySuKf5lOAxCHFA4tVkTYb0VKwtKF9nJG7K6r+Id0MQ3vphYRlz4dxe73DbDlO1MqR9pFMtsqrw5C1RwrGr3x47IDG8AXkbrh8zk2ZMJjKrh0+/g7rMq0qGYiFKtsqYQNcw== 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 Wed, Apr 23, 2025 at 04:33:19PM +0530, Dev Jain wrote: > > > On 23/04/25 4:06 pm, Feng Tang wrote: > > When running mm selftest to verify mm patches, 'compaction_test' case > > failed on an x86 server with 1TB memory. And the root cause is that it > > has too much free memory than what the test supports. > > > > The test case tries to allocate 100000 huge pages, which is about 200 GB > > for that x86 server, and when it succeeds, it expects it's large than > > 1/3 of 80% of the free memory in system. This logic only works for > > platform with 750 GB ( 200 / (1/3) / 80% ) or less free memory, and may > > raise false alarm for others. > > > > Fix it by changing the fixed page number to self-adjustable number > > according to the real number of free memory. > > > > Fixes: bd67d5c15cc19 ("Test compaction of mlocked memory") > > Signed-off-by: Feng Tang > > Not sure if fixes tag is needed. Yep, I was not very sure either :). And I'm fine with dropping the tag. > > Acked-by: Dev Jain Many thanks for the review! - Feng > > --- > > tools/testing/selftests/mm/compaction_test.c | 19 ++++++++++++++----- > > 1 file changed, 14 insertions(+), 5 deletions(-) > > > > diff --git a/tools/testing/selftests/mm/compaction_test.c b/tools/testing/selftests/mm/compaction_test.c > > index 2c3a0eb6b22d..9bc4591c7b16 100644 > > --- a/tools/testing/selftests/mm/compaction_test.c > > +++ b/tools/testing/selftests/mm/compaction_test.c > > @@ -90,6 +90,8 @@ int check_compaction(unsigned long mem_free, unsigned long hugepage_size, > > int compaction_index = 0; > > char nr_hugepages[20] = {0}; > > char init_nr_hugepages[24] = {0}; > > + char target_nr_hugepages[24] = {0}; > > + int slen; > > snprintf(init_nr_hugepages, sizeof(init_nr_hugepages), > > "%lu", initial_nr_hugepages); > > @@ -106,11 +108,18 @@ int check_compaction(unsigned long mem_free, unsigned long hugepage_size, > > goto out; > > } > > - /* Request a large number of huge pages. The Kernel will allocate > > - as much as it can */ > > - if (write(fd, "100000", (6*sizeof(char))) != (6*sizeof(char))) { > > - ksft_print_msg("Failed to write 100000 to /proc/sys/vm/nr_hugepages: %s\n", > > - strerror(errno)); > > + /* > > + * Request huge pages for about half of the free memory. The Kernel > > + * will allocate as much as it can, and we expect it will get at least 1/3 > > + */ > > + nr_hugepages_ul = mem_free / hugepage_size / 2; > > + snprintf(target_nr_hugepages, sizeof(target_nr_hugepages), > > + "%lu", nr_hugepages_ul); > > + > > + slen = strlen(target_nr_hugepages); > > + if (write(fd, target_nr_hugepages, slen) != slen) { > > + ksft_print_msg("Failed to write %lu to /proc/sys/vm/nr_hugepages: %s\n", > > + nr_hugepages_ul, strerror(errno)); > > goto close_fd; > > }