Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1715803pxb; Wed, 10 Feb 2021 15:14:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJzXyNvJdeNc0aTfYh38euwUu7ngLPnLlecXo41OVLshsU0l3nkJnwbEgLuLJlJ8F9UCde4B X-Received: by 2002:aa7:cd0a:: with SMTP id b10mr5380119edw.153.1612998867605; Wed, 10 Feb 2021 15:14:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612998867; cv=none; d=google.com; s=arc-20160816; b=eFGO+4tfyaMT+RnuQHqRmxiYH4DcMSnOl6T1J47QNYzBZaGZjD9sh6E+ZQBCDNQs5g BIkZcsUgduLSMcXhOdfH18Z1Xg586DLgmRN7Sx7fYtCLTOLHsmfEClxPwGIVmCojGRjs 09m/C+PyftNtjESYwPkkYeZyepAj9Ym2sqHpKF/nk9nKJEt0ee+5prrKAEiy3SNex60C XBccNaV3L2Q8NOc65peEg8jpMcyeFyn1hG7WBnkONozqNhtdkoqxc9S8w33jDDYcmwoT Kw+lxhCka9T0AWIn4gpU++n1HKrJhNJPuI+9j+6sHCAEW6Gzj5ZPOkXa/3+2lJDJzMOq GutQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:reply-to:sender:dkim-signature; bh=EX0PcjeGA1FsVa28u0L0T+UtxADEQ+txdahAw79zYWo=; b=ebQoLRQPTBwLawlTF3ssTQ8myBUeamVetMs6yLGQ70CkIdbbVx2EzxxWi1wXreMj8n Cvot08EPOw2H2U/h82BRbDpbPPSnPlDJqiW1atf9z/EVVaZh9duBO2hK1wD7QxTN+b6F RDdWgnYoxjj4WvD7VQIg4uoTpmFpsJwXiJEk/Y/ZsxBTCep0wAJ0o6xa0qWtRMoZ1mnZ SubYOXmAirXW9FU6vW0jN6j01T/1/DvjMWccvndy51n1DXZGauW+ifQpr7dcOcQsuJdB NDP6ROGgdTiL+hkkswweeiBnBqoNtDSLZcQe/ZCdW93W5K6N7KtfnnamcLkch//IH6XR 3teA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=UKm1BEI9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t10si2331011ejr.500.2021.02.10.15.14.03; Wed, 10 Feb 2021 15:14:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=UKm1BEI9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234038AbhBJXLN (ORCPT + 99 others); Wed, 10 Feb 2021 18:11:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233460AbhBJXIN (ORCPT ); Wed, 10 Feb 2021 18:08:13 -0500 Received: from mail-qt1-x849.google.com (mail-qt1-x849.google.com [IPv6:2607:f8b0:4864:20::849]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7CA80C06121E for ; Wed, 10 Feb 2021 15:06:53 -0800 (PST) Received: by mail-qt1-x849.google.com with SMTP id v3so1533368qte.0 for ; Wed, 10 Feb 2021 15:06:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:reply-to:date:in-reply-to:message-id:mime-version:references :subject:from:to:cc; bh=EX0PcjeGA1FsVa28u0L0T+UtxADEQ+txdahAw79zYWo=; b=UKm1BEI9jXw+I1BnyzPMzQCujLZ4ITkUyafcuFrAoF4+L1abIJyW+DlGvBY401OdJo F0+KmFI++onCL0GKu95/izIEetzp0XAPkv1X1B01zCddyy9n3ViZtYmPPw7PEQtuASAz K2xCdsCegHHlS40eyHejY87TFOdRip9sSoBwyewJxmWyPhXFGA1CIMuIx0KXhDuw5J2C O3SSUzIZuu+gGO2rkv7LpEPINYxBsAWMthPmY1g/UbjgwZVrQoUlmF8mLSa7J77EySwg RcuiuLqdh0CIGaJ6DpmyptV/Xw7tILsg3MrV5NSb5sApXMxejW9HDf9HVZO+71hrrrX2 KR0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:reply-to:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=EX0PcjeGA1FsVa28u0L0T+UtxADEQ+txdahAw79zYWo=; b=QAQqJ5EZyCjyu5iofhpfFP1DEJ91bzifML/LVKI+kKytSdk01EychNluDlnHQ/Dt1C l3qrcxQchAAyPxadL3pYgPK2GDfajXaSNjzE8h16i7vrZYtRfTx+C1l6gh6qjFk2NS5h hBsixNKIKpUx/3cv9y/yIhFCIr3kXanVuPUS06nithd9fyNfoMEgQBa3aCfdBvzQk2D9 KpjGJaG7yeSH/g/aZh1tRtP3bgI3nDOX4tpKIFcE8KwhOZp2FtNPPGD5KilvY4QXKusj WYab1a70ZNqx6zfpALca3leSdzF3wovb8vCafRHhP+S6AXuTMYo83t0hemRvnkx0kTSo 4uCQ== X-Gm-Message-State: AOAM533DHVv/mh/ut1o8Ive/VwTZeLorg/vuQ92Fu5mtEHDouwAz0ggR 1GUwMsJOdRQenrUCyPSE0U6q7FXY/s8= Sender: "seanjc via sendgmr" X-Received: from seanjc798194.pdx.corp.google.com ([2620:15c:f:10:11fc:33d:bf1:4cb8]) (user=seanjc job=sendgmr) by 2002:ad4:5be9:: with SMTP id k9mr5291729qvc.18.1612998412556; Wed, 10 Feb 2021 15:06:52 -0800 (PST) Reply-To: Sean Christopherson Date: Wed, 10 Feb 2021 15:06:19 -0800 In-Reply-To: <20210210230625.550939-1-seanjc@google.com> Message-Id: <20210210230625.550939-10-seanjc@google.com> Mime-Version: 1.0 References: <20210210230625.550939-1-seanjc@google.com> X-Mailer: git-send-email 2.30.0.478.g8a0d178c01-goog Subject: [PATCH 09/15] KVM: selftests: Move per-VM GPA into perf_test_args From: Sean Christopherson To: Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Sean Christopherson , Ben Gardon , Yanan Wang , Andrew Jones , Peter Xu , Aaron Lewis Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Move the per-VM GPA into perf_test_args instead of storing it as a separate global variable. It's not obvious that guest_test_phys_mem holds a GPA, nor that it's connected/coupled with per_vcpu->gpa. No functional change intended. Signed-off-by: Sean Christopherson --- .../selftests/kvm/include/perf_test_util.h | 8 +----- .../selftests/kvm/lib/perf_test_util.c | 28 ++++++++----------- .../kvm/memslot_modification_stress_test.c | 2 +- 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/tools/testing/selftests/kvm/include/perf_test_util.h b/tools/testing/selftests/kvm/include/perf_test_util.h index 4d53238b139f..cccf1c44bddb 100644 --- a/tools/testing/selftests/kvm/include/perf_test_util.h +++ b/tools/testing/selftests/kvm/include/perf_test_util.h @@ -29,6 +29,7 @@ struct perf_test_vcpu_args { struct perf_test_args { struct kvm_vm *vm; uint64_t host_page_size; + uint64_t gpa; uint64_t guest_page_size; int wr_fract; @@ -37,13 +38,6 @@ struct perf_test_args { extern struct perf_test_args perf_test_args; -/* - * Guest physical memory offset of the testing memory slot. - * This will be set to the topmost valid physical address minus - * the test memory size. - */ -extern uint64_t guest_test_phys_mem; - struct kvm_vm *perf_test_create_vm(enum vm_guest_mode mode, int vcpus, uint64_t vcpu_memory_bytes, enum vm_mem_backing_src_type backing_src); diff --git a/tools/testing/selftests/kvm/lib/perf_test_util.c b/tools/testing/selftests/kvm/lib/perf_test_util.c index f22ce1836547..03f125236021 100644 --- a/tools/testing/selftests/kvm/lib/perf_test_util.c +++ b/tools/testing/selftests/kvm/lib/perf_test_util.c @@ -9,8 +9,6 @@ struct perf_test_args perf_test_args; -uint64_t guest_test_phys_mem; - /* * Guest virtual memory offset of the testing memory slot. * Must not conflict with identity mapped test code. @@ -87,29 +85,25 @@ struct kvm_vm *perf_test_create_vm(enum vm_guest_mode mode, int vcpus, TEST_ASSERT(guest_num_pages < vm_get_max_gfn(vm), "Requested more guest memory than address space allows.\n" " guest pages: %lx max gfn: %x vcpus: %d wss: %lx]\n", - guest_num_pages, vm_get_max_gfn(vm), vcpus, - vcpu_memory_bytes); + guest_num_pages, vm_get_max_gfn(vm), vcpus, vcpu_memory_bytes); - guest_test_phys_mem = (vm_get_max_gfn(vm) - guest_num_pages) * - pta->guest_page_size; - guest_test_phys_mem &= ~(pta->host_page_size - 1); + pta->gpa = (vm_get_max_gfn(vm) - guest_num_pages) * pta->guest_page_size; + pta->gpa &= ~(pta->host_page_size - 1); if (backing_src == VM_MEM_SRC_ANONYMOUS_THP || backing_src == VM_MEM_SRC_ANONYMOUS_HUGETLB) - guest_test_phys_mem &= ~(KVM_UTIL_HUGEPAGE_ALIGNMENT - 1); - + pta->gpa &= ~(KVM_UTIL_HUGEPAGE_ALIGNMENT - 1); #ifdef __s390x__ /* Align to 1M (segment size) */ - guest_test_phys_mem &= ~((1 << 20) - 1); + pta->gpa &= ~((1 << 20) - 1); #endif - pr_info("guest physical test memory offset: 0x%lx\n", guest_test_phys_mem); + pr_info("guest physical test memory offset: 0x%lx\n", pta->gpa); /* Add an extra memory slot for testing */ - vm_userspace_mem_region_add(vm, backing_src, guest_test_phys_mem, - PERF_TEST_MEM_SLOT_INDEX, - guest_num_pages, 0); + vm_userspace_mem_region_add(vm, backing_src, pta->gpa, + PERF_TEST_MEM_SLOT_INDEX, guest_num_pages, 0); /* Do mapping for the demand paging memory slot */ - virt_map(vm, guest_test_virt_mem, guest_test_phys_mem, guest_num_pages, 0); + virt_map(vm, guest_test_virt_mem, pta->gpa, guest_num_pages, 0); ucall_init(vm, NULL); @@ -139,13 +133,13 @@ void perf_test_setup_vcpus(struct kvm_vm *vm, int vcpus, (vcpu_id * vcpu_memory_bytes); vcpu_args->pages = vcpu_memory_bytes / pta->guest_page_size; - vcpu_args->gpa = guest_test_phys_mem + + vcpu_args->gpa = pta->gpa + (vcpu_id * vcpu_memory_bytes); } else { vcpu_args->gva = guest_test_virt_mem; vcpu_args->pages = (vcpus * vcpu_memory_bytes) / pta->guest_page_size; - vcpu_args->gpa = guest_test_phys_mem; + vcpu_args->gpa = pta->gpa; } pr_debug("Added VCPU %d with test mem gpa [%lx, %lx)\n", diff --git a/tools/testing/selftests/kvm/memslot_modification_stress_test.c b/tools/testing/selftests/kvm/memslot_modification_stress_test.c index 6096bf0a5b34..569bb1f55bdf 100644 --- a/tools/testing/selftests/kvm/memslot_modification_stress_test.c +++ b/tools/testing/selftests/kvm/memslot_modification_stress_test.c @@ -121,7 +121,7 @@ static void run_test(enum vm_guest_mode mode, void *arg) add_remove_memslot(vm, p->memslot_modification_delay, p->nr_memslot_modifications, - guest_test_phys_mem + + perf_test_args.gpa + (guest_percpu_mem_size * nr_vcpus) + perf_test_args.host_page_size + perf_test_args.guest_page_size); -- 2.30.0.478.g8a0d178c01-goog