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 4C83DCCA47E for ; Fri, 24 Jun 2022 17:37:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 654AC8E0258; Fri, 24 Jun 2022 13:37:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 53D308E0244; Fri, 24 Jun 2022 13:37:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3DC8D8E0258; Fri, 24 Jun 2022 13:37:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 20D2F8E0244 for ; Fri, 24 Jun 2022 13:37:47 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id EF126120801 for ; Fri, 24 Jun 2022 17:37:46 +0000 (UTC) X-FDA: 79613836932.19.C0F3358 Received: from mail-ua1-f73.google.com (mail-ua1-f73.google.com [209.85.222.73]) by imf11.hostedemail.com (Postfix) with ESMTP id 8D4FA4002A for ; Fri, 24 Jun 2022 17:37:46 +0000 (UTC) Received: by mail-ua1-f73.google.com with SMTP id v13-20020ab0200d000000b0037f1212efd9so1022804uak.9 for ; Fri, 24 Jun 2022 10:37:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=u+0c8IGQItY5NCCATolNVsWOPdUIr5MDdbCK/q0TIvo=; b=D90ixVslphWwRS1UyK82N/Fu4Pbp7RfYXJAXQqDLm0AYhlK59/wd1jqEmTakmfoAdM bCaJEmUAqS6tCX2dak5OsRfQg3/S32jkFNOOv5AhzS6KIq2Y8/bxRLDG5Ynhh7Q4ZWRf T28FEgQTuQAmTAzbinSDCUL5FqalKu06/tPW5zgoGnZaHOERoYdGxV1amlIWNDhV6gNx Hux7xxh8o8EA2S1TUMwn3Pd1RB6gqb3P03MxNrYVTbnyXFz2pdn7Ecfkw2C38+x5Tq4t 6G6ZSXt7n/jc3VeCFkh0qVe2rMcVgaPEC639yccX83zFJnO8qJjsZQZj8m3ROTU/7Otn uqtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=u+0c8IGQItY5NCCATolNVsWOPdUIr5MDdbCK/q0TIvo=; b=DBvs5c0ODZfR7Z2oKX3h5hO45U7PTniPGNj86iKoky50HrnqnV4CiOIIodtPxNgtIZ YYtbn6MnMi2MT7lhY1fFCEecFhlpZD1YFTsasVIh2kWifoFdNA0p5821zT6cxIUc3X4l IEw1nY8++m5rTiW81ke5Nxu6dXMcrcUAXUeHM0Yix+1t6o7gjYs4bMj8VPZ3qnHpNO+0 yrIU24mePBECKlgG9RcN0Aoa5YPs2z9gKCxoK/PY+eKngfayu7lYUa8NYyhMA5bFjduc BFO8CtoxLRmVFGsC2GEOE3uKfq/1ifbf9BaRuTIKknew4OuYvm/PodHJGA+FJsDVXuAu JPcw== X-Gm-Message-State: AJIora9U4p1b1XbcA99gRsAeHEOYJwz6hh7DpXOT9m9h78Pt0YrI1ie7 xhLyEy/IIczKk7Ogw2ftTsjiEbohQ77klrEt X-Google-Smtp-Source: AGRyM1sXBK2BOgwtHhnCdm6QzU6aNINH2NrcD5ngkogaDCkYiXeckpXlq4vGXhiBI+c1PtjBBhz07CDWB+WagWPT X-Received: from jthoughton.c.googlers.com ([fda3:e722:ac3:cc00:14:4d90:c0a8:2a4f]) (user=jthoughton job=sendgmr) by 2002:a05:6122:1990:b0:36b:f70c:ba55 with SMTP id bv16-20020a056122199000b0036bf70cba55mr26413vkb.12.1656092265972; Fri, 24 Jun 2022 10:37:45 -0700 (PDT) Date: Fri, 24 Jun 2022 17:36:56 +0000 In-Reply-To: <20220624173656.2033256-1-jthoughton@google.com> Message-Id: <20220624173656.2033256-27-jthoughton@google.com> Mime-Version: 1.0 References: <20220624173656.2033256-1-jthoughton@google.com> X-Mailer: git-send-email 2.37.0.rc0.161.g10f37bed90-goog Subject: [RFC PATCH 26/26] selftests: add HugeTLB HGM to KVM demand paging selftest From: James Houghton To: Mike Kravetz , Muchun Song , Peter Xu Cc: David Hildenbrand , David Rientjes , Axel Rasmussen , Mina Almasry , Jue Wang , Manish Mishra , "Dr . David Alan Gilbert" , linux-mm@kvack.org, linux-kernel@vger.kernel.org, James Houghton Content-Type: text/plain; charset="UTF-8" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1656092266; a=rsa-sha256; cv=none; b=24QBzanNinTKOgZcnVMyVgcbDbeN8RkqzrWu7PnBizgUBpSiJl4h/0nmWpuGUXiepbGsyh +GdDFlpjYUAanUcdaKBqQUD/bY9lAYYYGvd9ERV8NM864ZMj+QRgc6TGCwCLXGKKkk1Eeu eab28d4OT0A8HrPIg7tUPyrx2DX/R4w= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=D90ixVsl; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of 3afa1YgoKCEov5t06st50zs00sxq.o0yxuz69-yyw7mow.03s@flex--jthoughton.bounces.google.com designates 209.85.222.73 as permitted sender) smtp.mailfrom=3afa1YgoKCEov5t06st50zs00sxq.o0yxuz69-yyw7mow.03s@flex--jthoughton.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656092266; 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=u+0c8IGQItY5NCCATolNVsWOPdUIr5MDdbCK/q0TIvo=; b=tvlvcNVGw/o8BRH4qcIlN/NuG41GXHL4IuiOHynU5wBddyyoShss6v3MnpBJ9cVpWTwfi0 KnQHyD3HqbB/q/U2xe33YlI7PyHQtMdjDYQkA6rMRt5XFQAzfZ9kVLXVeev7BO6noZVgV0 MrZBm/R1Mzoef3idf4H4cSiDySoLPPg= X-Rspam-User: X-Stat-Signature: rdq54e8ajccmae35ukm3f9yqopi7b46n X-Rspamd-Queue-Id: 8D4FA4002A Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=D90ixVsl; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of 3afa1YgoKCEov5t06st50zs00sxq.o0yxuz69-yyw7mow.03s@flex--jthoughton.bounces.google.com designates 209.85.222.73 as permitted sender) smtp.mailfrom=3afa1YgoKCEov5t06st50zs00sxq.o0yxuz69-yyw7mow.03s@flex--jthoughton.bounces.google.com X-Rspamd-Server: rspam03 X-HE-Tag: 1656092266-658455 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: This doesn't address collapsing yet, and it only works with the MINOR mode (UFFDIO_CONTINUE). Signed-off-by: James Houghton --- tools/testing/selftests/kvm/include/test_util.h | 2 ++ tools/testing/selftests/kvm/lib/kvm_util.c | 2 +- tools/testing/selftests/kvm/lib/test_util.c | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/include/test_util.h b/tools/testing/selftests/kvm/include/test_util.h index 99e0dcdc923f..6209e44981a7 100644 --- a/tools/testing/selftests/kvm/include/test_util.h +++ b/tools/testing/selftests/kvm/include/test_util.h @@ -87,6 +87,7 @@ enum vm_mem_backing_src_type { VM_MEM_SRC_ANONYMOUS_HUGETLB_16GB, VM_MEM_SRC_SHMEM, VM_MEM_SRC_SHARED_HUGETLB, + VM_MEM_SRC_SHARED_HUGETLB_HGM, NUM_SRC_TYPES, }; @@ -105,6 +106,7 @@ size_t get_def_hugetlb_pagesz(void); const struct vm_mem_backing_src_alias *vm_mem_backing_src_alias(uint32_t i); size_t get_backing_src_pagesz(uint32_t i); bool is_backing_src_hugetlb(uint32_t i); +bool is_backing_src_shared_hugetlb(enum vm_mem_backing_src_type src_type); void backing_src_help(const char *flag); enum vm_mem_backing_src_type parse_backing_src_type(const char *type_name); long get_run_delay(void); diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index 1665a220abcb..382f8fb75b7f 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -993,7 +993,7 @@ void vm_userspace_mem_region_add(struct kvm_vm *vm, region->fd = -1; if (backing_src_is_shared(src_type)) region->fd = kvm_memfd_alloc(region->mmap_size, - src_type == VM_MEM_SRC_SHARED_HUGETLB); + is_backing_src_shared_hugetlb(src_type)); region->mmap_start = mmap(NULL, region->mmap_size, PROT_READ | PROT_WRITE, diff --git a/tools/testing/selftests/kvm/lib/test_util.c b/tools/testing/selftests/kvm/lib/test_util.c index 6d23878bbfe1..710dc42077fe 100644 --- a/tools/testing/selftests/kvm/lib/test_util.c +++ b/tools/testing/selftests/kvm/lib/test_util.c @@ -254,6 +254,13 @@ const struct vm_mem_backing_src_alias *vm_mem_backing_src_alias(uint32_t i) */ .flag = MAP_SHARED, }, + [VM_MEM_SRC_SHARED_HUGETLB_HGM] = { + /* + * Identical to shared_hugetlb except for the name. + */ + .name = "shared_hugetlb_hgm", + .flag = MAP_SHARED, + }, }; _Static_assert(ARRAY_SIZE(aliases) == NUM_SRC_TYPES, "Missing new backing src types?"); @@ -272,6 +279,7 @@ size_t get_backing_src_pagesz(uint32_t i) switch (i) { case VM_MEM_SRC_ANONYMOUS: case VM_MEM_SRC_SHMEM: + case VM_MEM_SRC_SHARED_HUGETLB_HGM: return getpagesize(); case VM_MEM_SRC_ANONYMOUS_THP: return get_trans_hugepagesz(); @@ -288,6 +296,12 @@ bool is_backing_src_hugetlb(uint32_t i) return !!(vm_mem_backing_src_alias(i)->flag & MAP_HUGETLB); } +bool is_backing_src_shared_hugetlb(enum vm_mem_backing_src_type src_type) +{ + return src_type == VM_MEM_SRC_SHARED_HUGETLB || + src_type == VM_MEM_SRC_SHARED_HUGETLB_HGM; +} + static void print_available_backing_src_types(const char *prefix) { int i; -- 2.37.0.rc0.161.g10f37bed90-goog