Received: by 2002:ac0:e350:0:0:0:0:0 with SMTP id g16csp368140imn; Wed, 3 Aug 2022 07:19:11 -0700 (PDT) X-Google-Smtp-Source: AA6agR6nlAjFl94DGwsEWTHxryGstAkjmeLQb3qkT3HQUpiXgtzrC2hM7sKSld2bg3fZ9pUJmEMJ X-Received: by 2002:a17:90b:2c13:b0:1f3:359a:c7d5 with SMTP id rv19-20020a17090b2c1300b001f3359ac7d5mr5247383pjb.72.1659536350897; Wed, 03 Aug 2022 07:19:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659536350; cv=none; d=google.com; s=arc-20160816; b=hV4n5EFPUE7uM7xK2EaYChEmnlZCUOrFb8R23XJSHZYDvAYCMUubO0EITM5Ym6KSfs aDfmZ3FKJFXVWJlMIqssOye+EeK7KO2+1BOLdZvdWyV6e3TGntiR/mobjNEQ0IZpBdxG 97SVKx3bjUxG+oxmGf0MX/Ng6Eai1gRwtx393z8C0JazhBK/ffUI3iFpeHQyJ2SlqDjz ObI+LlbRKBmy7unohgVErxBBXs+BYM/67Yh7Fv3/zUDUAiKgZ++KKtqX4IJopg5f9fT/ 0x7gq2YZUxgrr7VaDRgafZA9yLNrf7zNxNK3K+erNWfvKdMCpbaUPwNtDdZlsbYqYAU4 A6wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=akK8tVXDwdjIn6OZU41CQiCJrDJ9JYhNcK0mIVyRub8=; b=UD0sLtTs7zFm+1a57scuiqI1H6kpayI96R68PaqG/6F6u20HGkeQDZ4JU9GADn4pp0 fNMvnKNHnizRSxwH/AOA33t+PfxvtX4gIcBs4vLHOt2KiUseEHaC4n/gCqVOsEiYMiwh 8qeYiLySk4deOuhyT3y2cwTaIK0IpyzL/Cj4V2I8Nhp15JA2Hlkf/M5SBJzxYIKESUfr GtIr01D3keSe/rUqsXJdqQHBIkcgEQne1VaLi4BpSsYixigRCSLg9/Jvt7/Bde+J+Oq8 UtMXzyCoxiu139DsZ9lshkzmiFcLF2u5MXmIzfUrbRZn0or4zE/MycM0r8YNBuBJz0eT fYRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=AALndjc7; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c8-20020a170902aa4800b0016d5881a196si2308391plr.474.2022.08.03.07.18.51; Wed, 03 Aug 2022 07:19:10 -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=@redhat.com header.s=mimecast20190719 header.b=AALndjc7; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238214AbiHCNmI (ORCPT + 99 others); Wed, 3 Aug 2022 09:42:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238001AbiHCNlm (ORCPT ); Wed, 3 Aug 2022 09:41:42 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 8EC901A052 for ; Wed, 3 Aug 2022 06:41:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659534094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=akK8tVXDwdjIn6OZU41CQiCJrDJ9JYhNcK0mIVyRub8=; b=AALndjc7S1fr9QhUVVC/vbx0/hflrd5y8J3Zen0CnpemgsMl1ND5h/fTz4boatGPHu4YcE fKUHGdISZfObQkVRqt6ywGN63e5WrzDJXl1WQsqCIjT4WlybEuVBXFP1mYLZUSnIwgGBDH CFm+6++YYSSocqO8mCsV8rJFbfPG2qY= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-597-BD-SX22BNYOaJv_CeG63nA-1; Wed, 03 Aug 2022 09:41:29 -0400 X-MC-Unique: BD-SX22BNYOaJv_CeG63nA-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8C7F53C11E68; Wed, 3 Aug 2022 13:41:28 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.40.195.93]) by smtp.corp.redhat.com (Postfix) with ESMTP id B6675492C3B; Wed, 3 Aug 2022 13:41:26 +0000 (UTC) From: Vitaly Kuznetsov To: kvm@vger.kernel.org, Paolo Bonzini , Sean Christopherson Cc: Wanpeng Li , Jim Mattson , Michael Kelley , Siddharth Chandrasekaran , Yuan Yao , Maxim Levitsky , linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 06/40] KVM: x86: hyper-v: Expose support for extended gva ranges for flush hypercalls Date: Wed, 3 Aug 2022 15:40:36 +0200 Message-Id: <20220803134110.397885-7-vkuznets@redhat.com> In-Reply-To: <20220803134110.397885-1-vkuznets@redhat.com> References: <20220803134110.397885-1-vkuznets@redhat.com> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE 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 Extended GVA ranges support bit seems to indicate whether lower 12 bits of GVA can be used to specify up to 4095 additional consequent GVAs to flush. This is somewhat described in TLFS. Previously, KVM was handling HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST{,EX} requests by flushing the whole VPID so technically, extended GVA ranges were already supported. As such requests are handled more gently now, advertizing support for extended ranges starts making sense to reduce the size of TLB flush requests. Reviewed-by: Maxim Levitsky Signed-off-by: Vitaly Kuznetsov --- arch/x86/include/asm/hyperv-tlfs.h | 2 ++ arch/x86/kvm/hyperv.c | 1 + 2 files changed, 3 insertions(+) diff --git a/arch/x86/include/asm/hyperv-tlfs.h b/arch/x86/include/asm/hyperv-tlfs.h index 0a9407dc0859..5225a85c08c3 100644 --- a/arch/x86/include/asm/hyperv-tlfs.h +++ b/arch/x86/include/asm/hyperv-tlfs.h @@ -61,6 +61,8 @@ #define HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE BIT(10) /* Support for debug MSRs available */ #define HV_FEATURE_DEBUG_MSRS_AVAILABLE BIT(11) +/* Support for extended gva ranges for flush hypercalls available */ +#define HV_FEATURE_EXT_GVA_RANGES_FLUSH BIT(14) /* * Support for returning hypercall output block via XMM * registers is available diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c index 227d9c9e9420..1a4b9d0c0b1f 100644 --- a/arch/x86/kvm/hyperv.c +++ b/arch/x86/kvm/hyperv.c @@ -2642,6 +2642,7 @@ int kvm_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid, ent->ebx |= HV_DEBUGGING; ent->edx |= HV_X64_GUEST_DEBUGGING_AVAILABLE; ent->edx |= HV_FEATURE_DEBUG_MSRS_AVAILABLE; + ent->edx |= HV_FEATURE_EXT_GVA_RANGES_FLUSH; /* * Direct Synthetic timers only make sense with in-kernel -- 2.35.3