From patchwork Wed Jul 14 08:56:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhansaya Bagdauletkyzy X-Patchwork-Id: 12376301 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=-7.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no 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 97899C07E9A for ; Wed, 14 Jul 2021 08:56:08 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 4075B61362 for ; Wed, 14 Jul 2021 08:56:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4075B61362 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 5B0516B0083; Wed, 14 Jul 2021 04:56:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 560C36B0085; Wed, 14 Jul 2021 04:56:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 400BD6B0088; Wed, 14 Jul 2021 04:56:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0025.hostedemail.com [216.40.44.25]) by kanga.kvack.org (Postfix) with ESMTP id 154BF6B0083 for ; Wed, 14 Jul 2021 04:56:08 -0400 (EDT) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id F1F94185805F0 for ; Wed, 14 Jul 2021 08:56:06 +0000 (UTC) X-FDA: 78360586332.14.C81CEF6 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by imf11.hostedemail.com (Postfix) with ESMTP id 959E9F00020F for ; Wed, 14 Jul 2021 08:56:06 +0000 (UTC) Received: by mail-lf1-f42.google.com with SMTP id x25so2309865lfu.13 for ; Wed, 14 Jul 2021 01:56:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition; bh=8Vx+BB0NWwYoN1KcParFH+Gpc5QD5LN7UUlbl1lSPJo=; b=owC/sHRDvmMulhPFKuXa35tdAWl/Ge7OoTGG3fnAvVkHhDvcBQXcrkLlniRv+t3J6g Aw3pW5XofOxn/HpPSUXHGG85gI9PsTkbcfls+Ht59F6iFixImvOTSPIwXY3bIPNpf9dB ACGeWo5zeIjDd4uyIgCIUFvI+p9AUf7R7AghmI2Uq73YtABz/L2QaseyKM6oE256GUrW U59Q/865G/N2t8LU39T60cUj9LmzmDKlKaLutAJUvTrLNJO8ZwJNCUsD5h/ggcqgCeI6 OrJgNihPwKVyOiY7oQRv1poeAU3/qHdjm07sobOljJF66kY3uuFM0c0JRpWx8A40scou Ijjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition; bh=8Vx+BB0NWwYoN1KcParFH+Gpc5QD5LN7UUlbl1lSPJo=; b=Lfl/ItOXFAl6Zo9L/c79sqg/Kx+AtxooGjERjzy24Tsc2o2PP5qHLVnufJF64pofnj 30XXWFTk6OeUYLXz2csrL+fIBMH/MqmNhbDEjZRVSGnN0Na590vnLOfCaQ8NsEGGx6G4 aNvdUXRAMZagiQSdOBNgxjNOZj6IkGeJBPlAgWv8PDb8F5EaieL6hlALWrainNT7LGE0 divso/BkzEEYnlAQhw5oJL2a9DkOzO9K0JnKsm6OFERAMBbRMswkjZXyuZFnf0yyJDnw rNraJIbDKe4DaKyUmO6jFAlr6164n5BHSJhkzuB/IqDROUhYjimlCPVWJ9gkIK01S5ek rJ0A== X-Gm-Message-State: AOAM531JXWHXYUETrSLdQa+fIpcISCmc0r0F30YALMPFPbi+c7PDtDAX hQjJjt84VTI31nvSvrU44ZU= X-Google-Smtp-Source: ABdhPJymjYuj17yZZhtahpciUm33eTLsIBixRsdbh8a4rdoKnEp+rBQwsycXFMDrwYa9PF/LsPGBjA== X-Received: by 2002:a05:6512:c12:: with SMTP id z18mr7537642lfu.230.1626252964999; Wed, 14 Jul 2021 01:56:04 -0700 (PDT) Received: from asus ([93.95.240.58]) by smtp.gmail.com with ESMTPSA id v10sm165598ljp.20.2021.07.14.01.56.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Jul 2021 01:56:04 -0700 (PDT) Date: Wed, 14 Jul 2021 14:56:01 +0600 From: Zhansaya Bagdauletkyzy To: shuah@kernel.org, akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org, tyhicks@linux.microsoft.com, pasha.tatashin@soleen.com Subject: [PATCH v2 0/4] add KSM selftests Message-ID: MIME-Version: 1.0 Content-Disposition: inline Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20161025 header.b="owC/sHRD"; spf=pass (imf11.hostedemail.com: domain of zhansayabagdaulet@gmail.com designates 209.85.167.42 as permitted sender) smtp.mailfrom=zhansayabagdaulet@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspamd-Server: rspam05 X-Stat-Signature: uh49wyhpkwo68d4oexgebwk5bj3p1g7x X-Rspamd-Queue-Id: 959E9F00020F X-HE-Tag: 1626252966-999370 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: Introduce selftests to validate the functionality of KSM. The tests are run on private anonymous pages. Since some KSM tunables are modified, their starting values are saved and restored after testing. At the start, run is set to 2 to ensure that only test pages will be merged (we assume that no applications make madvise syscalls in the background). If KSM config not enabled, all tests will be skipped. Zhansaya Bagdauletkyzy (4): selftests: vm: add KSM merge test selftests: vm: add KSM unmerge test selftests: vm: add KSM zero page merging test selftests: vm: add KSM merging across nodes test v1 -> v2: - add a test to check KSM unmerging - add a test to check merging of zero pages - add a test to check merging in different NUMA nodes - include command line options for each test - new options to specify use_zero_pages and merge_across_nodes - run each test case in run_vmtests.sh - add some helper functions to make the code more compact: allocate_memory(), ksm_do_scan(), ksm_merge_pages() tools/testing/selftests/vm/.gitignore | 1 + tools/testing/selftests/vm/Makefile | 3 + tools/testing/selftests/vm/ksm_tests.c | 516 ++++++++++++++++++++++ tools/testing/selftests/vm/run_vmtests.sh | 96 ++++ 4 files changed, 616 insertions(+) create mode 100644 tools/testing/selftests/vm/ksm_tests.c