Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp937860rdb; Tue, 19 Sep 2023 15:11:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGS5NKTbqnMHO8ZZ1GCVulqz4buGeQbXWrcnQ0XBVFHGjjmkbjwFYUlQSawpZ9Gz2jUD1Ta X-Received: by 2002:aca:1210:0:b0:3a4:f7b:4490 with SMTP id 16-20020aca1210000000b003a40f7b4490mr564070ois.57.1695161476415; Tue, 19 Sep 2023 15:11:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695161476; cv=none; d=google.com; s=arc-20160816; b=SnaeV2Ryyhz70qxz5dA9QiCWW6xF7SHUd9KApRWE1HfAr4J2JPclpjs+F4zkDZBM81 v01R77okIgfIPlvWrYBtVlCHNNINPr2R5/0qICV3QJUInbJB8vjsXa5d7uJ8w6/DocZZ L65aewKhzeNCD9DFpRCG7j6B+Ock1ZlKojNr0g7vEeJJuKhkFV4XqAbQjuloZWhn+Y0T zg4nkbOjfQmhFpjjMVqzzqlJwcxYWVHbgONaUIdc9USl4hCTEnOeSDCwFOxCD/brsPkT yk44AHBJoVpai2sPuJyvgNZ+KVwAnOsxgki4HJzdqCmfyQu3NZRZVMrGQMfeYrpcyBGO +4Lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=HjrdE60++TcwatJpXQy7OuWtzjqtwzDOP4HlaCMD688=; fh=Q5KFsCqdtJ06CcCAgyB8mcohzWvqjFprTxYkwhTQtOU=; b=0rxaYCNALjfwN5V1HZCm3vIG2kGYLW1Hit8h6eylxkbrz7Tc3LuS0/Cvc2IYtnEjbg EjqJKUQKYqqAZBiE9+w7NlvDFz4we+8+e5cO0mIwbzXjcNEzN98S1lfeTKFXqkatTJbP 3DO4Vk+ogUQpksVm/gru9gemRJqW8Qya2gcaipF2DIi9qp0Fge2DLJlXh3S5GEWcObrA TZ8dUQWbVVF3k1i29JlN8jvPdDyDRJN8G9B2EE8IPMk9nLJ957CzvS+ehg87Fl/tR6Su 23BE4phy35k9Topxiv14ATaO6KbfohIDPytGsVRX3o8wkSR0+dbLeiU6tFm13PJwDCT6 8gkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@atishpatra.org header.s=google header.b=sRu16KAO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id s24-20020a63af58000000b00577581963ccsi10111434pgo.260.2023.09.19.15.11.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Sep 2023 15:11:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@atishpatra.org header.s=google header.b=sRu16KAO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id C3759825B4BE; Tue, 19 Sep 2023 12:54:57 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232873AbjISTyx (ORCPT + 99 others); Tue, 19 Sep 2023 15:54:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50686 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232088AbjISTyv (ORCPT ); Tue, 19 Sep 2023 15:54:51 -0400 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D865F9C for ; Tue, 19 Sep 2023 12:54:45 -0700 (PDT) Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-500a8b2b73eso9906530e87.0 for ; Tue, 19 Sep 2023 12:54:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atishpatra.org; s=google; t=1695153284; x=1695758084; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=HjrdE60++TcwatJpXQy7OuWtzjqtwzDOP4HlaCMD688=; b=sRu16KAOkVD0agT9pdQCQeM8bB1TjVRVnK5JwdoDH07GsZD92zQ+g+Id0bjhm5mEy/ gmVPHQ3ADTrUphmtraeXoguL/snemaBJnAz5BY3hycpPufCq3yW8cw/ucCed53DjC9K1 8wZbbg3ImSfHvoUi4VHA+dZG2NHEM2dtHdooE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695153284; x=1695758084; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HjrdE60++TcwatJpXQy7OuWtzjqtwzDOP4HlaCMD688=; b=Li1Tv/9ioAICKCgVZrsT27N+7e9Xfo+oAaX1ro6CIh93UPdj+ts0YiCzGy0AApjkgM SVVDg1jpgr0AwMN8hDwzlDzUQ1Gou9lXoAXkIxWOIpaNPXYhsc5hOw7jKTWwBsDD8k3q 3MG866vtEdtZc7AwMo1OG/VqFTni0y/L8wvgFMYlXYaObEVFh0CH0yKwjnOCGzVrPEJf bAC1E/8Bh2pLwDivmEVBCaLEKKpHJoZiWFVlSfY6bh2zlYq+dt9zLdfJzxkyTmfAzqw/ 4sBcKArZgWx0ZPZXq5D+AtC91GqX1oXjRJPZyLYqgZPpd4YJWIXm/x21f3VMchoiyQp1 rluQ== X-Gm-Message-State: AOJu0Yyv3uYo/SHssW2ccfpPLp99RTTkDvru2DAgjHnfH1odkGQ7WzZK 0MxgAojjcmbMvHdL1DOwdpG98YByvXruJeHYeFLo X-Received: by 2002:a05:6512:475:b0:4fe:8c4:44fb with SMTP id x21-20020a056512047500b004fe08c444fbmr546266lfd.38.1695153283961; Tue, 19 Sep 2023 12:54:43 -0700 (PDT) MIME-Version: 1.0 References: <20230918180646.1398384-1-apatel@ventanamicro.com> <20230918180646.1398384-4-apatel@ventanamicro.com> In-Reply-To: <20230918180646.1398384-4-apatel@ventanamicro.com> From: Atish Patra Date: Tue, 19 Sep 2023 12:54:32 -0700 Message-ID: Subject: Re: [PATCH 3/4] KVM: riscv: selftests: Fix ISA_EXT register handling in get-reg-list To: Anup Patel Cc: Paolo Bonzini , Shuah Khan , Palmer Dabbelt , Paul Walmsley , Andrew Jones , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 19 Sep 2023 12:54:57 -0700 (PDT) On Mon, Sep 18, 2023 at 11:07=E2=80=AFAM Anup Patel wrote: > > Same set of ISA_EXT registers are not present on all host because > ISA_EXT registers are visible to the KVM user space based on the > ISA extensions available on the host. Also, disabling an ISA > extension using corresponding ISA_EXT register does not affect > the visibility of the ISA_EXT register itself. > > Based on the above, we should filter-out all ISA_EXT registers. > In that case, we don't need the switch case any more. Just a conditional check with KVM_RISCV_ISA_EXT_MAX should be sufficient. > Fixes: 477069398ed6 ("KVM: riscv: selftests: Add get-reg-list test") > Signed-off-by: Anup Patel > --- > .../selftests/kvm/riscv/get-reg-list.c | 35 +++++++++++-------- > 1 file changed, 21 insertions(+), 14 deletions(-) > > diff --git a/tools/testing/selftests/kvm/riscv/get-reg-list.c b/tools/tes= ting/selftests/kvm/riscv/get-reg-list.c > index d8ecacd03ecf..76c0ad11e423 100644 > --- a/tools/testing/selftests/kvm/riscv/get-reg-list.c > +++ b/tools/testing/selftests/kvm/riscv/get-reg-list.c > @@ -14,17 +14,33 @@ > > bool filter_reg(__u64 reg) > { > + switch (reg & ~REG_MASK) { > /* > - * Some ISA extensions are optional and not present on all host, > - * but they can't be disabled through ISA_EXT registers when pres= ent. > - * So, to make life easy, just filtering out these kind of regist= ers. > + * Same set of ISA_EXT registers are not present on all host beca= use > + * ISA_EXT registers are visible to the KVM user space based on t= he > + * ISA extensions available on the host. Also, disabling an ISA > + * extension using corresponding ISA_EXT register does not affect > + * the visibility of the ISA_EXT register itself. > + * > + * Based on above, we should filter-out all ISA_EXT registers. > */ > - switch (reg & ~REG_MASK) { > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_A: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_C: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_D: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_F: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_H: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_I: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_M: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_SVPBMT: > case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_SSTC: > case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_SVINVAL: > case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZIHINTPAUSE: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICBOM: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICBOZ: > case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZBB: > case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_SSAIA: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_V: > + case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_SVNAPOT: > case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZBA: > case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZBS: > case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICNTR: > @@ -50,12 +66,7 @@ static inline bool vcpu_has_ext(struct kvm_vcpu *vcpu,= int ext) > unsigned long value; > > ret =3D __vcpu_get_reg(vcpu, RISCV_ISA_EXT_REG(ext), &value); > - if (ret) { > - printf("Failed to get ext %d", ext); > - return false; > - } > - > - return !!value; > + return (ret) ? false : !!value; > } > > void finalize_vcpu(struct kvm_vcpu *vcpu, struct vcpu_reg_list *c) > @@ -506,10 +517,6 @@ static __u64 base_regs[] =3D { > KVM_REG_RISCV | KVM_REG_SIZE_U64 | KVM_REG_RISCV_TIMER | KVM_REG_= RISCV_TIMER_REG(time), > KVM_REG_RISCV | KVM_REG_SIZE_U64 | KVM_REG_RISCV_TIMER | KVM_REG_= RISCV_TIMER_REG(compare), > KVM_REG_RISCV | KVM_REG_SIZE_U64 | KVM_REG_RISCV_TIMER | KVM_REG_= RISCV_TIMER_REG(state), > - KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_= RISCV_ISA_EXT_A, > - KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_= RISCV_ISA_EXT_C, > - KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_= RISCV_ISA_EXT_I, > - KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_= RISCV_ISA_EXT_M, > KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_SBI_EXT | KVM_= REG_RISCV_SBI_SINGLE | KVM_RISCV_SBI_EXT_V01, > KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_SBI_EXT | KVM_= REG_RISCV_SBI_SINGLE | KVM_RISCV_SBI_EXT_TIME, > KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_SBI_EXT | KVM_= REG_RISCV_SBI_SINGLE | KVM_RISCV_SBI_EXT_IPI, > -- > 2.34.1 > --=20 Regards, Atish