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=unavailable 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 EDF34C433B4 for ; Wed, 19 May 2021 21:53:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8CEB2610CC for ; Wed, 19 May 2021 21:53:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229906AbhESVyl (ORCPT ); Wed, 19 May 2021 17:54:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57994 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229805AbhESVyj (ORCPT ); Wed, 19 May 2021 17:54:39 -0400 Received: from mail-il1-x12e.google.com (mail-il1-x12e.google.com [IPv6:2607:f8b0:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6C43FC061760 for ; Wed, 19 May 2021 14:53:17 -0700 (PDT) Received: by mail-il1-x12e.google.com with SMTP id o10so12520478ilm.13 for ; Wed, 19 May 2021 14:53:17 -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=qHKLEyIhofUJ9O3L6wRXKwbLS4Rc68P4WfTPWjMjPlE=; b=YdhjX1Bx6Wds8k+sGHxeLk5XXdy9lQknlHF5nJ+CZtZ7/QiKRI0LuL4KWEUGxY9pZU YJ6DXWcWfevNK/4Xvz06EFTSmMeSCcCmAuJlGqGvK016b/Tap+LIuxYMHLyBUaXTu25T 1NPVQ2oyI303T5RIXMqvJLy+5QmFr7xmC7Jtld9c9cDYhnhKCxeJde4TSf5HOYgXwc1Q +Dgfto6/H0ka/uuKmsIlcDjSJrvZqbKQjYF8JLLftlqbFAcfxQPuRC3R9zFmZd7icWmp wyc8Fj4lqPcTxmrEW7UrPVa36TP3hwCnbf/VtzAmZoW9b2h3ITJAPJPekIXWzBRBzSuS sp2Q== 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=qHKLEyIhofUJ9O3L6wRXKwbLS4Rc68P4WfTPWjMjPlE=; b=btIuJJe2SOzJGZS/2D23uCEdWeTrCCUPhKLY9TXN806oNJpms2tcLOVhrnzkx72Mya W2c8SbzVycWoNkt25K1TnCyZX/Q5vqOaL7QvMlAzpEx6rnRC5XX0Oop/5kQhWe6GkQBv AMQf09bsiBnikiDGrsjWp4v9oYySmBt3h0z0/cXixIlB1Yl5pySK46e/K4RGVEL4kLWR nFF4tuX1iTRgFDONp6hBIyeAV4gtZQTmAZ0ka4qlit3Rq/iEeEMEhjCNQl1zzP+vcfRG 9jI5cwC3fciNswok9UcDtYqmFhwKwSjQkJrMZHOE0BjOBbYMZNWxuF6sTX7EdD8SnVlk 4ZXg== X-Gm-Message-State: AOAM533ju8LTvof8WG192zA0FF6hNSnHSMPT2v2jcXonAyo0v8Sl9gbm VjZnC7zlxE6IUucxiisGNAO1gzBLEEw2EXlPPU5xUQ== X-Google-Smtp-Source: ABdhPJyqvn00++/Enjz0iknPn/khIgX0sjeuE6FEcTFhA4v0lx82z3Q5R4bucC9JlNrOHhGRcMkhe9/xXwzgl0hTtoo= X-Received: by 2002:a92:c5ac:: with SMTP id r12mr1160400ilt.283.1621461196624; Wed, 19 May 2021 14:53:16 -0700 (PDT) MIME-Version: 1.0 References: <20210519200339.829146-1-axelrasmussen@google.com> <20210519200339.829146-6-axelrasmussen@google.com> In-Reply-To: <20210519200339.829146-6-axelrasmussen@google.com> From: Ben Gardon Date: Wed, 19 May 2021 14:53:06 -0700 Message-ID: Subject: Re: [PATCH v2 05/10] KVM: selftests: allow different backing source types To: Axel Rasmussen Cc: Aaron Lewis , Alexander Graf , Andrew Jones , Andrew Morton , Emanuele Giuseppe Esposito , Eric Auger , Jacob Xu , Makarand Sonare , Oliver Upton , Paolo Bonzini , Peter Xu , Shuah Khan , Yanan Wang , kvm , LKML , linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 19, 2021 at 1:03 PM Axel Rasmussen wrote: > > Add an argument which lets us specify a different backing memory type > for the test. The default is just to use anonymous, matching existing > behavior. > > This is in preparation for testing UFFD minor faults. For that, we'll > need to use a new backing memory type which is setup with MAP_SHARED. > > Signed-off-by: Axel Rasmussen Reviewed-by: Ben Gardon > --- > tools/testing/selftests/kvm/demand_paging_test.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c > index 94cf047358d5..01890a7b0155 100644 > --- a/tools/testing/selftests/kvm/demand_paging_test.c > +++ b/tools/testing/selftests/kvm/demand_paging_test.c > @@ -241,6 +241,7 @@ static void setup_demand_paging(struct kvm_vm *vm, > struct test_params { > bool use_uffd; > useconds_t uffd_delay; > + enum vm_mem_backing_src_type src_type; > bool partition_vcpu_memory_access; > }; > > @@ -258,11 +259,11 @@ static void run_test(enum vm_guest_mode mode, void *arg) > int r; > > vm = perf_test_create_vm(mode, nr_vcpus, guest_percpu_mem_size, > - VM_MEM_SRC_ANONYMOUS); > + p->src_type); > > perf_test_args.wr_fract = 1; > > - demand_paging_size = get_backing_src_pagesz(VM_MEM_SRC_ANONYMOUS); > + demand_paging_size = get_backing_src_pagesz(p->src_type); > > guest_data_prototype = malloc(demand_paging_size); > TEST_ASSERT(guest_data_prototype, > @@ -378,7 +379,7 @@ static void help(char *name) > { > puts(""); > printf("usage: %s [-h] [-m mode] [-u] [-d uffd_delay_usec]\n" > - " [-b memory] [-v vcpus] [-o]\n", name); > + " [-b memory] [-t type] [-v vcpus] [-o]\n", name); > guest_modes_help(); > printf(" -u: use User Fault FD to handle vCPU page\n" > " faults.\n"); > @@ -388,6 +389,8 @@ static void help(char *name) > printf(" -b: specify the size of the memory region which should be\n" > " demand paged by each vCPU. e.g. 10M or 3G.\n" > " Default: 1G\n"); > + printf(" -t: The type of backing memory to use. Default: anonymous\n"); > + backing_src_help(); > printf(" -v: specify the number of vCPUs to run.\n"); > printf(" -o: Overlap guest memory accesses instead of partitioning\n" > " them into a separate region of memory for each vCPU.\n"); > @@ -399,13 +402,14 @@ int main(int argc, char *argv[]) > { > int max_vcpus = kvm_check_cap(KVM_CAP_MAX_VCPUS); > struct test_params p = { > + .src_type = VM_MEM_SRC_ANONYMOUS, > .partition_vcpu_memory_access = true, > }; > int opt; > > guest_modes_append_default(); > > - while ((opt = getopt(argc, argv, "hm:ud:b:v:o")) != -1) { > + while ((opt = getopt(argc, argv, "hm:ud:b:t:v:o")) != -1) { > switch (opt) { > case 'm': > guest_modes_cmdline(optarg); > @@ -420,6 +424,9 @@ int main(int argc, char *argv[]) > case 'b': > guest_percpu_mem_size = parse_size(optarg); > break; > + case 't': > + p.src_type = parse_backing_src_type(optarg); > + break; > case 'v': > nr_vcpus = atoi(optarg); > TEST_ASSERT(nr_vcpus > 0 && nr_vcpus <= max_vcpus, > -- > 2.31.1.751.gd2f1c929bd-goog >