Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp1245313rwd; Thu, 25 May 2023 09:52:00 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6mXB1T1Ioo029HPRK8koNx8v159tcYLKXc7UXq3Dux2Um5YNnLHcEuIjwhrtEmvmSTUdVn X-Received: by 2002:a05:6a00:194f:b0:63b:7a55:ae89 with SMTP id s15-20020a056a00194f00b0063b7a55ae89mr9693047pfk.27.1685033520121; Thu, 25 May 2023 09:52:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685033520; cv=none; d=google.com; s=arc-20160816; b=p7adCIG8fII77tTUH8ll8lfi6sdKaUeBWdXr8T/fThsRRCCcatAxLL6bEkU+dlnSuZ fdYhxNuZqP9ZPHk2m46BVospN7LUyqQCmSFDxlV1TTTNMV43HAVoy4SLGEL2PHoicWph wijX8qQmnRZyC+YiD4bO59YsJDR7+Lh5K8WMdCAhmlDfJ/XCXudhFIVAHx+MDdbZD925 +6mrUIW3o8/SFkL4KEAWIkNWG80Dqt7EYSHv3fplt1Vvxyy9VisJV1nPEyISgIhUW/LD WhbSWZGUZXizba7biMvd11fsX79p1SGcb1M2dQRQjgmDvvZX78MyiPYa2iyyPLMfcTcx 08Lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=AR0TcRh5E3uNMVlwV4MX3XAnDWVMVCj/HBAPlYOkb4Q=; b=FiShZpn37kfmipQL37KqJ41bP8xKLURuqRkQyieFrb/eEZROe4TNcn3Q/6QswD+KLp TbZK0XxKA/MFizOc/mieNkBpyqYDaUganFF/tZSzxHoGnyZmO3EQa0fR7EEq66DMs8m8 aQ9/udYlZPTG5I6/6LrOeanh6s6yJhcFnawOSx5cHuoWhUqrbAdTJCMivn0Bt6Jm+YHN Wx/V7Ejm2Z/9JIUzPgVTTKJk9lvfQ+C1voQkPxAHg7h5YmpOcxTBRmd0k3DCDRuAIcM0 KXmXCL+wb0RjqWAJUKL/oMe/CKgtoBAGSClSTvqDPs90PHg9H9mjpRjgUvEgad/VbdU0 denA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ventanamicro.com header.s=google header.b="SMOO/RHo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 185-20020a6300c2000000b0052dcd67347asi1571236pga.382.2023.05.25.09.51.45; Thu, 25 May 2023 09:52:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@ventanamicro.com header.s=google header.b="SMOO/RHo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230501AbjEYQkN (ORCPT + 99 others); Thu, 25 May 2023 12:40:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45156 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233816AbjEYQkM (ORCPT ); Thu, 25 May 2023 12:40:12 -0400 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 388BB19C for ; Thu, 25 May 2023 09:40:10 -0700 (PDT) Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-3f6e1394060so4248755e9.3 for ; Thu, 25 May 2023 09:40:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1685032808; x=1687624808; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=AR0TcRh5E3uNMVlwV4MX3XAnDWVMVCj/HBAPlYOkb4Q=; b=SMOO/RHoH9sCbPbHZOhilUrB2bJNfvDLCzNO5ccrVnl5YTsggfxCAGw2enOsIJsw3S muOPMMbM8OB9rpMjOPTcLN0styrxHRbccc9yTmXWbgcevJUP1pwqZXi98iwgUX4Pfv55 os7jsjCiXCLLhdD3CTPGSThlSx7rRpRDglbQkL4uhDoPpGndSA0UT7be/09Y3qB4sCTU 9Jj2LjqrHnXVoyAXUQEyeCSGlSCPNGIKyvU2Ar0ZXlrITl5RpUUhEMrIW9rij7AQisZh pS4SfprjWAgXcStQyvo0bOqre47fTQRcCig3TUxi2T6iUTtbEYJBhRLX2YVECM6VJ7Ni /zsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685032808; x=1687624808; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=AR0TcRh5E3uNMVlwV4MX3XAnDWVMVCj/HBAPlYOkb4Q=; b=CnyzNN5Neo1Z9hVMvhyN1NEEyrVlF0DQxs3uLYTm5HBrH+YpPJVzpUFn5sX0wNKfLN nan3Gm/A5EWKYMQ/zMqLI9w9WhDux/FQKkGRhCDbcBTXvmv3sPenjSB6MK/U8yUtAunZ 4C55R5AUTj+amTvqWvl6Wuxgo/UR4WPqe21HutFk2OD62QC1GFYcXxdWmR1MEGupQZ99 p98wjdJz0G4bmtuOLVUM0hNDjUgNl1+qS97AybOdPj3kQRluD9RDpwmdskbd5ViPIDWY WTZmSk00ZIsKCn8zBPCmb8Myfi2TCeZZM2V79RxA+UXgLL+C5umDdyxqbq1YjeKcN/8r Flog== X-Gm-Message-State: AC+VfDyoA2KHYLFLHXsrOO0jzWVxmeQ4x0Rq4reWlOdYhMblYF7NGrGt PshfRUeII6IDCEPwgqkTAqZrow== X-Received: by 2002:a7b:cbd6:0:b0:3f4:2452:9669 with SMTP id n22-20020a7bcbd6000000b003f424529669mr3090300wmi.0.1685032808575; Thu, 25 May 2023 09:40:08 -0700 (PDT) Received: from localhost (cst2-173-16.cust.vodafone.cz. [31.30.173.16]) by smtp.gmail.com with ESMTPSA id c2-20020adfed82000000b003078a3f3a24sm2311517wro.114.2023.05.25.09.40.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 09:40:07 -0700 (PDT) Date: Thu, 25 May 2023 18:40:07 +0200 From: Andrew Jones To: Haibo Xu Cc: xiaobo55x@gmail.com, maz@kernel.org, oliver.upton@linux.dev, seanjc@google.com, Paolo Bonzini , Jonathan Corbet , Anup Patel , Atish Patra , Paul Walmsley , Palmer Dabbelt , Albert Ou , Shuah Khan , James Morse , Suzuki K Poulose , Zenghui Yu , David Matlack , Ben Gardon , Vipin Sharma , Colton Lewis , kvm@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev Subject: Re: [PATCH v2 09/11] KVM: riscv: selftests: Make check_supported arch specific Message-ID: <20230525-705ddcbcd43aa63e3fd356c8@orel> References: <26dea518fc5e8da51e61db279d175364bfecd009.1684999824.git.haibo1.xu@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <26dea518fc5e8da51e61db279d175364bfecd009.1684999824.git.haibo1.xu@intel.com> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 25, 2023 at 03:38:33PM +0800, Haibo Xu wrote: > check_supported() was used to verify whether a feature/extension was > supported in a guest in the get-reg-list test. Currently this info > can be retrieved through the KVM_CAP_ARM_* API in aarch64, but in > riscv, this info was only exposed through the KVM_GET_ONE_REG on > KVM_REG_RISCV_ISA_EXT pseudo registers. > > Signed-off-by: Haibo Xu > --- > tools/testing/selftests/kvm/get-reg-list.c | 32 +++++++++++----------- > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/tools/testing/selftests/kvm/get-reg-list.c b/tools/testing/selftests/kvm/get-reg-list.c > index f6ad7991a812..f1fc113e9719 100644 > --- a/tools/testing/selftests/kvm/get-reg-list.c > +++ b/tools/testing/selftests/kvm/get-reg-list.c > @@ -99,6 +99,20 @@ void __weak print_reg(const char *prefix, __u64 id) > } > > #ifdef __aarch64__ > +static void check_supported(struct vcpu_reg_list *c) > +{ > + struct vcpu_reg_sublist *s; > + > + for_each_sublist(c, s) { > + if (!s->capability) > + continue; I was going to say that making this function aarch64 shouldn't be necessary, since riscv leaves capability set to zero and this function doesn't do anything, but then looking ahead I see riscv is abusing capability by putting isa extensions in it. IMO, capability should only be set to KVM_CAP_* values. Since riscv doesn't use it, then it should be left zero. If we're going to abuse something, then I'd rather abuse the 'feature' member, but since it's only an int (not an unsigned long), then let's just add an 'unsigned long extension' member. Then, the finalize_vcpu() call can be moved back to run_test(), from aarch64's vcpu_config_get_vcpu(). Both aarch64 and riscv will call it right after vcpu_config_get_vcpu() and the riscv version of it will do what your current riscv check_supported() is doing, using the new 'extension' member instead of 'capability'. And this patch gets dropped. Thanks, drew > + > + __TEST_REQUIRE(kvm_has_cap(s->capability), > + "%s: %s not available, skipping tests\n", > + config_name(c), s->name); > + } > +} > + > static void prepare_vcpu_init(struct vcpu_reg_list *c, struct kvm_vcpu_init *init) > { > struct vcpu_reg_sublist *s; > @@ -126,6 +140,8 @@ static struct kvm_vcpu *vcpu_config_get_vcpu(struct vcpu_reg_list *c, struct kvm > struct kvm_vcpu_init init = { .target = -1, }; > struct kvm_vcpu *vcpu; > > + check_supported(c); > + > prepare_vcpu_init(c, &init); > vcpu = __vm_vcpu_add(vm, 0); > aarch64_vcpu_setup(vcpu, &init); > @@ -140,20 +156,6 @@ static struct kvm_vcpu *vcpu_config_get_vcpu(struct vcpu_reg_list *c, struct kvm > } > #endif > > -static void check_supported(struct vcpu_reg_list *c) > -{ > - struct vcpu_reg_sublist *s; > - > - for_each_sublist(c, s) { > - if (!s->capability) > - continue; > - > - __TEST_REQUIRE(kvm_has_cap(s->capability), > - "%s: %s not available, skipping tests\n", > - config_name(c), s->name); > - } > -} > - > static bool print_list; > static bool print_filtered; > > @@ -165,8 +167,6 @@ static void run_test(struct vcpu_reg_list *c) > struct kvm_vm *vm; > struct vcpu_reg_sublist *s; > > - check_supported(c); > - > vm = vm_create_barebones(); > vcpu = vcpu_config_get_vcpu(c, vm); > > -- > 2.34.1 >