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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C643CC433F5 for ; Wed, 4 May 2022 23:07:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1381226AbiEDXEV (ORCPT ); Wed, 4 May 2022 19:04:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379696AbiEDW52 (ORCPT ); Wed, 4 May 2022 18:57:28 -0400 Received: from mail-pg1-x54a.google.com (mail-pg1-x54a.google.com [IPv6:2607:f8b0:4864:20::54a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 004BD5536F for ; Wed, 4 May 2022 15:51:51 -0700 (PDT) Received: by mail-pg1-x54a.google.com with SMTP id 23-20020a630117000000b003c5ea4365a1so1345614pgb.6 for ; Wed, 04 May 2022 15:51:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=reply-to:date:in-reply-to:message-id:mime-version:references :subject:from:to:cc; bh=ZW3w9xofgltN1neo0tjqm25A7AFY7+GoNG7TSvd2coE=; b=lzlYTUTL0Ftpdhwl2RRfG2+gvphI+IRrYXzHKvc5W9nY4Rf6Pz+ht4zScOf0lCunPG zJOaiFBKUk4BPf3fws16j4DRLYXLTBokezqVSzqBf98cOLJTbg9PIqz5c1MkcLK0ZwJw Frk7g1K1Gq0YAAGB5K+Ahqyh2mwcUgqf1B3rZpz+/4yIFrt0WJOkjADxUAG/QOYhbw9s wqeQnWoo6WCtXlIpCHdPCueQUbjjjDXaONuunq/8TkxTGH2DJf7YhNIXbZV0S+M+QuQI YFj1s7LfMQYCiWSziKghOSt0XzmHOeV3yF8N10bRtJrP2JFHkAGAs2/sZupMRIDBP4Nw XR2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:reply-to:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=ZW3w9xofgltN1neo0tjqm25A7AFY7+GoNG7TSvd2coE=; b=lRUIKasi5qyUTHqfiMyviUJGgqjQ9VGtMDc2FRenjMWCZ4Xxu8iDRxauXjz3/IDuNa MDa9TUP231jwx+xYCAeiY4Ua775dwKKieS6lOWxezr/pRmPfX8psbMCsApBQf10xlT/F VrG1F5ao8aBO8Z/dVoVyiCKr5P0+4E5/ngqVxShAITWOXlCT7V15nh/Vy6munjsKrCyQ ZWGQW3mz8EzimHMjMLESuNbI01k3KmFut5/5YIFNbEOsLp+/vcTHku2Rb4xpf0IoVcIP kSGw1ba248NSenhiCt0gdIH7HBbrL4SS9zNaETYk/wTfkSP7UJqC2a4Git83TH5R5FIL aJEA== X-Gm-Message-State: AOAM531QiLRBRbORqf3UU4/v/88gbCX0mWg0UdHLP9nyc5ZkV7tyr+Eb jERub5um7uDhFdOQfEjINO5pdRfOuhU= X-Google-Smtp-Source: ABdhPJweO1jeaf/s+FxYi79dpsM67S4Y8HecNdtHDW/Z3aKONSylH47HtCpMaOCyFByJU33x8S0GaHK1D0w= X-Received: from seanjc.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:3e5]) (user=seanjc job=sendgmr) by 2002:a05:6a00:b94:b0:50f:2255:ae03 with SMTP id g20-20020a056a000b9400b0050f2255ae03mr7547957pfj.74.1651704709118; Wed, 04 May 2022 15:51:49 -0700 (PDT) Reply-To: Sean Christopherson Date: Wed, 4 May 2022 22:48:26 +0000 In-Reply-To: <20220504224914.1654036-1-seanjc@google.com> Message-Id: <20220504224914.1654036-81-seanjc@google.com> Mime-Version: 1.0 References: <20220504224914.1654036-1-seanjc@google.com> X-Mailer: git-send-email 2.36.0.464.gb9c8b46e94-goog Subject: [PATCH 080/128] KVM: selftests: Convert xen_vmcall_test away from VCPU_ID From: Sean Christopherson To: Paolo Bonzini Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Vitaly Kuznetsov , Andrew Jones , David Matlack , Ben Gardon , Oliver Upton , Sean Christopherson Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Convert xen_vmcall_test to use vm_create_with_one_vcpu() and pass around a 'struct kvm_vcpu' object instead of using a global VCPU_ID. Note, this is a "functional" change in the sense that the test now creates a vCPU with vcpu_id==0 instead of vcpu_id==5. The non-zero VCPU_ID was 100% arbitrary and added little to no validation coverage. If testing non-zero vCPU IDs is desirable for generic tests, that can be done in the future by tweaking the VM creation helpers. Opportunistically make the "vm" variable local, it is unused outside of main(). Signed-off-by: Sean Christopherson --- .../selftests/kvm/x86_64/xen_vmcall_test.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/kvm/x86_64/xen_vmcall_test.c b/tools/testing/selftests/kvm/x86_64/xen_vmcall_test.c index b30fe9de1d4f..1411ead620fe 100644 --- a/tools/testing/selftests/kvm/x86_64/xen_vmcall_test.c +++ b/tools/testing/selftests/kvm/x86_64/xen_vmcall_test.c @@ -11,13 +11,9 @@ #include "kvm_util.h" #include "processor.h" -#define VCPU_ID 5 - #define HCALL_REGION_GPA 0xc0000000ULL #define HCALL_REGION_SLOT 10 -static struct kvm_vm *vm; - #define INPUTVALUE 17 #define ARGVALUE(x) (0xdeadbeef5a5a0000UL + x) #define RETVALUE 0xcafef00dfbfbffffUL @@ -84,14 +80,17 @@ static void guest_code(void) int main(int argc, char *argv[]) { + struct kvm_vcpu *vcpu; + struct kvm_vm *vm; + if (!(kvm_check_cap(KVM_CAP_XEN_HVM) & KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL) ) { print_skip("KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL not available"); exit(KSFT_SKIP); } - vm = vm_create_default(VCPU_ID, 0, (void *) guest_code); - vcpu_set_hv_cpuid(vm, VCPU_ID); + vm = vm_create_with_one_vcpu(&vcpu, guest_code); + vcpu_set_hv_cpuid(vm, vcpu->id); struct kvm_xen_hvm_config hvmc = { .flags = KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL, @@ -105,10 +104,10 @@ int main(int argc, char *argv[]) virt_map(vm, HCALL_REGION_GPA, HCALL_REGION_GPA, 2); for (;;) { - volatile struct kvm_run *run = vcpu_state(vm, VCPU_ID); + volatile struct kvm_run *run = vcpu->run; struct ucall uc; - vcpu_run(vm, VCPU_ID); + vcpu_run(vm, vcpu->id); if (run->exit_reason == KVM_EXIT_XEN) { ASSERT_EQ(run->xen.type, KVM_EXIT_XEN_HCALL); @@ -130,7 +129,7 @@ int main(int argc, char *argv[]) run->exit_reason, exit_reason_str(run->exit_reason)); - switch (get_ucall(vm, VCPU_ID, &uc)) { + switch (get_ucall(vm, vcpu->id, &uc)) { case UCALL_ABORT: TEST_FAIL("%s", (const char *)uc.args[0]); /* NOT REACHED */ -- 2.36.0.464.gb9c8b46e94-goog