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 X-Spam-Level: X-Spam-Status: No, score=-23.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76541C433B4 for ; Mon, 12 Apr 2021 18:37:38 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0FE4961206 for ; Mon, 12 Apr 2021 18:37:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0FE4961206 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 85D956B006C; Mon, 12 Apr 2021 14:37:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 80CB66B006E; Mon, 12 Apr 2021 14:37:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6AD626B0070; Mon, 12 Apr 2021 14:37:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0101.hostedemail.com [216.40.44.101]) by kanga.kvack.org (Postfix) with ESMTP id 4F3766B006C for ; Mon, 12 Apr 2021 14:37:37 -0400 (EDT) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id D3BD6824934B for ; Mon, 12 Apr 2021 18:37:36 +0000 (UTC) X-FDA: 78024573312.26.6DDC432 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) by imf08.hostedemail.com (Postfix) with ESMTP id 5A7CD80192C0 for ; Mon, 12 Apr 2021 18:37:24 +0000 (UTC) Received: by mail-pf1-f177.google.com with SMTP id m11so9749712pfc.11 for ; Mon, 12 Apr 2021 11:37:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=z3+agwM/TeNrjUCMQXaeoLSrY4b9sKMllw4YPnQltNg=; b=fg44s9YWe4dvFlAkKx4+cvJSjakBhdVeCGUvL4WcBLHsdaQHQkKop/DX7oXsvwUFB5 +JdUdUg9vzY5p55aasDH1LiCLx9oY0hw5UVl5SoYEyegXOaRlxcWind7SBPqqJcdZjOB 2hyzj4kHwzU/iFNwyu9e2k7YXQq3FkNmjCcrjHX4uCy9ZEkeW4MBnizGsr+EvU4mh0d+ K3zxfBJXJrPzAX5NOVtVsnE/InTqgrCcnCHoOR5aR9k3K/FGM55/Vm7soYeVlMgte6po R4kmir40HqzuPSmgx/5/DsLenWmL3KWvYhgKeQmmZ2LAjAXkVb1uI1k7+ztX6P2gpuZt SoOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=z3+agwM/TeNrjUCMQXaeoLSrY4b9sKMllw4YPnQltNg=; b=LJWOnrxymxQyUECcMSOkJEAL8sqZfXTk/zN/WqNhoHzwA4SinF7Obi6+oe4tJZpsSc dEamoYbCBlhwzx05d/loOpmapF1SgDDhB1/RGU5e4bSiDaF7OnK5jrC550bJcbaxyjnu Wy1VmW48BGGLwHucSstFRHYvaqcki629ZosrJoDObO9sFfWqDs6s2j4efJ1XpRqqHm4r hfxu4zH5i36NO+Hs0D24HLnzxIuCSgT0XQ0uHsiNIDqSSj2lUS9WsCv7IhGxpcdbWEKU 6mZMBiVZTn4IEy9RGYrLkFHA5VK9L0Xe+GBk5W2XmUrrQOsRRfaD+u2VObEk8ExmK2il k+9A== X-Gm-Message-State: AOAM5310iQTqBeMcv+qakNfTkdH+3qR3kPh/9ArRxfHNnbfVUr1wdrKp GRqovL12utwxLFkhYsVczMNUdKxRKcjxvGMiZmh59tzxHzbXoQ== X-Google-Smtp-Source: ABdhPJwvcp/oN+rzkEkXX3s0V+B9ISLIx8bTCK7FQ3WQ5zVZE456bxdwefP/X1sYkxg61pV8BxZr6bs9VqpgtBYhBRA= X-Received: by 2002:a05:6a00:1c67:b029:215:6f93:d220 with SMTP id s39-20020a056a001c67b02902156f93d220mr24848728pfw.36.1618252654995; Mon, 12 Apr 2021 11:37:34 -0700 (PDT) MIME-Version: 1.0 References: <20210330060752.592769-1-aneesh.kumar@linux.ibm.com> <20210330060752.592769-2-aneesh.kumar@linux.ibm.com> In-Reply-To: <20210330060752.592769-2-aneesh.kumar@linux.ibm.com> From: Kalesh Singh Date: Mon, 12 Apr 2021 11:37:24 -0700 Message-ID: Subject: Re: [PATCH v3 1/9] selftest/mremap_test: Update the test to handle pagesize other than 4K To: "Aneesh Kumar K.V" Cc: "open list:MEMORY MANAGEMENT" , Andrew Morton , mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org, npiggin@gmail.com, joel@joelfernandes.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 5A7CD80192C0 X-Stat-Signature: hpbo3kr459s3jk78zw3sbsgou5wbn3rt Received-SPF: none (google.com>: No applicable sender policy available) receiver=imf08; identity=mailfrom; envelope-from=""; helo=mail-pf1-f177.google.com; client-ip=209.85.210.177 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1618252644-526452 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: On Mon, Mar 29, 2021 at 11:08 PM Aneesh Kumar K.V wrote: > > Instead of hardcoding 4K page size fetch it using sysconf(). For the performance > measurements test still assume 2M and 1G are hugepage sizes. > > Signed-off-by: Aneesh Kumar K.V Reviewed-by: Kalesh Singh > --- > tools/testing/selftests/vm/mremap_test.c | 113 ++++++++++++----------- > 1 file changed, 61 insertions(+), 52 deletions(-) > > diff --git a/tools/testing/selftests/vm/mremap_test.c b/tools/testing/selftests/vm/mremap_test.c > index 9c391d016922..c9a5461eb786 100644 > --- a/tools/testing/selftests/vm/mremap_test.c > +++ b/tools/testing/selftests/vm/mremap_test.c > @@ -45,14 +45,15 @@ enum { > _4MB = 4ULL << 20, > _1GB = 1ULL << 30, > _2GB = 2ULL << 30, > - PTE = _4KB, > PMD = _2MB, > PUD = _1GB, > }; > > +#define PTE page_size > + > #define MAKE_TEST(source_align, destination_align, size, \ > overlaps, should_fail, test_name) \ > -{ \ > +(struct test){ \ > .name = test_name, \ > .config = { \ > .src_alignment = source_align, \ > @@ -252,12 +253,17 @@ static int parse_args(int argc, char **argv, unsigned int *threshold_mb, > return 0; > } > > +#define MAX_TEST 13 > +#define MAX_PERF_TEST 3 > int main(int argc, char **argv) > { > int failures = 0; > int i, run_perf_tests; > unsigned int threshold_mb = VALIDATION_DEFAULT_THRESHOLD; > unsigned int pattern_seed; > + struct test test_cases[MAX_TEST]; > + struct test perf_test_cases[MAX_PERF_TEST]; > + int page_size; > time_t t; > > pattern_seed = (unsigned int) time(&t); > @@ -268,56 +274,59 @@ int main(int argc, char **argv) > ksft_print_msg("Test configs:\n\tthreshold_mb=%u\n\tpattern_seed=%u\n\n", > threshold_mb, pattern_seed); > > - struct test test_cases[] = { > - /* Expected mremap failures */ > - MAKE_TEST(_4KB, _4KB, _4KB, OVERLAPPING, EXPECT_FAILURE, > - "mremap - Source and Destination Regions Overlapping"), > - MAKE_TEST(_4KB, _1KB, _4KB, NON_OVERLAPPING, EXPECT_FAILURE, > - "mremap - Destination Address Misaligned (1KB-aligned)"), > - MAKE_TEST(_1KB, _4KB, _4KB, NON_OVERLAPPING, EXPECT_FAILURE, > - "mremap - Source Address Misaligned (1KB-aligned)"), > - > - /* Src addr PTE aligned */ > - MAKE_TEST(PTE, PTE, _8KB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "8KB mremap - Source PTE-aligned, Destination PTE-aligned"), > - > - /* Src addr 1MB aligned */ > - MAKE_TEST(_1MB, PTE, _2MB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "2MB mremap - Source 1MB-aligned, Destination PTE-aligned"), > - MAKE_TEST(_1MB, _1MB, _2MB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "2MB mremap - Source 1MB-aligned, Destination 1MB-aligned"), > - > - /* Src addr PMD aligned */ > - MAKE_TEST(PMD, PTE, _4MB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "4MB mremap - Source PMD-aligned, Destination PTE-aligned"), > - MAKE_TEST(PMD, _1MB, _4MB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "4MB mremap - Source PMD-aligned, Destination 1MB-aligned"), > - MAKE_TEST(PMD, PMD, _4MB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "4MB mremap - Source PMD-aligned, Destination PMD-aligned"), > - > - /* Src addr PUD aligned */ > - MAKE_TEST(PUD, PTE, _2GB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "2GB mremap - Source PUD-aligned, Destination PTE-aligned"), > - MAKE_TEST(PUD, _1MB, _2GB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "2GB mremap - Source PUD-aligned, Destination 1MB-aligned"), > - MAKE_TEST(PUD, PMD, _2GB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "2GB mremap - Source PUD-aligned, Destination PMD-aligned"), > - MAKE_TEST(PUD, PUD, _2GB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "2GB mremap - Source PUD-aligned, Destination PUD-aligned"), > - }; > - > - struct test perf_test_cases[] = { > - /* > - * mremap 1GB region - Page table level aligned time > - * comparison. > - */ > - MAKE_TEST(PTE, PTE, _1GB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "1GB mremap - Source PTE-aligned, Destination PTE-aligned"), > - MAKE_TEST(PMD, PMD, _1GB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "1GB mremap - Source PMD-aligned, Destination PMD-aligned"), > - MAKE_TEST(PUD, PUD, _1GB, NON_OVERLAPPING, EXPECT_SUCCESS, > - "1GB mremap - Source PUD-aligned, Destination PUD-aligned"), > - }; > + page_size = sysconf(_SC_PAGESIZE); > + > + /* Expected mremap failures */ > + test_cases[0] = MAKE_TEST(page_size, page_size, page_size, > + OVERLAPPING, EXPECT_FAILURE, > + "mremap - Source and Destination Regions Overlapping"); > + > + test_cases[1] = MAKE_TEST(page_size, page_size/4, page_size, > + NON_OVERLAPPING, EXPECT_FAILURE, > + "mremap - Destination Address Misaligned (1KB-aligned)"); > + test_cases[2] = MAKE_TEST(page_size/4, page_size, page_size, > + NON_OVERLAPPING, EXPECT_FAILURE, > + "mremap - Source Address Misaligned (1KB-aligned)"); > + > + /* Src addr PTE aligned */ > + test_cases[3] = MAKE_TEST(PTE, PTE, PTE * 2, > + NON_OVERLAPPING, EXPECT_SUCCESS, > + "8KB mremap - Source PTE-aligned, Destination PTE-aligned"); > + > + /* Src addr 1MB aligned */ > + test_cases[4] = MAKE_TEST(_1MB, PTE, _2MB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "2MB mremap - Source 1MB-aligned, Destination PTE-aligned"); > + test_cases[5] = MAKE_TEST(_1MB, _1MB, _2MB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "2MB mremap - Source 1MB-aligned, Destination 1MB-aligned"); > + > + /* Src addr PMD aligned */ > + test_cases[6] = MAKE_TEST(PMD, PTE, _4MB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "4MB mremap - Source PMD-aligned, Destination PTE-aligned"); > + test_cases[7] = MAKE_TEST(PMD, _1MB, _4MB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "4MB mremap - Source PMD-aligned, Destination 1MB-aligned"); > + test_cases[8] = MAKE_TEST(PMD, PMD, _4MB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "4MB mremap - Source PMD-aligned, Destination PMD-aligned"); > + > + /* Src addr PUD aligned */ > + test_cases[9] = MAKE_TEST(PUD, PTE, _2GB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "2GB mremap - Source PUD-aligned, Destination PTE-aligned"); > + test_cases[10] = MAKE_TEST(PUD, _1MB, _2GB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "2GB mremap - Source PUD-aligned, Destination 1MB-aligned"); > + test_cases[11] = MAKE_TEST(PUD, PMD, _2GB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "2GB mremap - Source PUD-aligned, Destination PMD-aligned"); > + test_cases[12] = MAKE_TEST(PUD, PUD, _2GB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "2GB mremap - Source PUD-aligned, Destination PUD-aligned"); > + > + perf_test_cases[0] = MAKE_TEST(page_size, page_size, _1GB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "1GB mremap - Source PTE-aligned, Destination PTE-aligned"); > + /* > + * mremap 1GB region - Page table level aligned time > + * comparison. > + */ > + perf_test_cases[1] = MAKE_TEST(PMD, PMD, _1GB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "1GB mremap - Source PMD-aligned, Destination PMD-aligned"); > + perf_test_cases[2] = MAKE_TEST(PUD, PUD, _1GB, NON_OVERLAPPING, EXPECT_SUCCESS, > + "1GB mremap - Source PUD-aligned, Destination PUD-aligned"); > > run_perf_tests = (threshold_mb == VALIDATION_NO_THRESHOLD) || > (threshold_mb * _1MB >= _1GB); > -- > 2.30.2 >