Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp797257imu; Tue, 27 Nov 2018 06:28:36 -0800 (PST) X-Google-Smtp-Source: AFSGD/XsiWnQEhHwQOzgvNkumKgZg5l/J7nfmmUFXX+HwVY6t3J9quq2alJsSQSzywvoZMXwxHg4 X-Received: by 2002:a63:295:: with SMTP id 143mr28415098pgc.362.1543328916197; Tue, 27 Nov 2018 06:28:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543328916; cv=none; d=google.com; s=arc-20160816; b=YUGAmsKD6BQwKWhv1V2WDHXA/GzzWy/B7n35lmH551CPs3TUIzjpm8Y2vZEHQswNOz 66Xpv0qRxTCFvz+UIZrFv/3Ijj6Yvp4MfPFnME8WfZwnWc7qqdyQxTisAqnM8gA5MV9I WKoJE6iunOS+bkY5bK1GlK+D03B/qSrrbGIkOyjVX3QL8fbgJnhWmEZGybbK9QX9vzU+ xi9SnteR7Vu/ghsxl6GWGmuGl26qNdDaPy+x40bgaINvV7QMujf6WsvnYEgD7yTaMNnT Ooj3hbZ2kOCTiQZZQBSlMsv3iQQMmI44+c/w6unzwhKYZjezBrklv+e2+kUgLLg6r6lM SP3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:to:subject; bh=yOO9KRJ+uNNWWJf8zO7mxY7K+Q6n2M/CzJG6Gdz1ueA=; b=sRyo02YSlpHRqcpRY90qNmYBb+V54sUo+taJy89Wxlyr7QvCQS2dNEyqv6my4QFHJp rWE7nV+QBKsRDMtEPwuWWJMI6/XulJO88TJvj3kSV+4ECwwKvew9q/LuGqbq5dXhcdyz D/6VKzPvn5LaGYgnNhvkwKD89I1ktf2VsJQxepXv1IuZb0GmAwAyJEYmiQfWnT5NerqX vofW2Ei62bGtRwY24bnFvkhehKjIYlKXFiSQcVh15DzYEjH+VURRjrRt6EceaAGOOLW7 bou3s6cUYsn7wQdPC/ug44f2pYX1Gp+uP4rNKf2MgHvj1lM/sS0ZT7aEueBE3QgvWH9R M+Eg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b186si4276166pfb.24.2018.11.27.06.28.06; Tue, 27 Nov 2018 06:28:36 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727655AbeK1Awh (ORCPT + 99 others); Tue, 27 Nov 2018 19:52:37 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48256 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727119AbeK1Awg (ORCPT ); Tue, 27 Nov 2018 19:52:36 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A22B93086272; Tue, 27 Nov 2018 13:54:36 +0000 (UTC) Received: from [10.36.112.42] (ovpn-112-42.ams2.redhat.com [10.36.112.42]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 240886019C; Tue, 27 Nov 2018 13:54:22 +0000 (UTC) Subject: Re: [PATCH v2 3/4] x86/kvm/hyper-v: direct mode for synthetic timers To: Roman Kagan , Paolo Bonzini , Vitaly Kuznetsov , kvm@vger.kernel.org, =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , linux-kernel@vger.kernel.org, "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , x86@kernel.org, "Michael Kelley (EOSG)" References: <20181126154732.23025-1-vkuznets@redhat.com> <20181126154732.23025-4-vkuznets@redhat.com> <20181127083706.GB16047@rkaganb.sw.ru> From: Paolo Bonzini Openpgp: preference=signencrypt Autocrypt: addr=pbonzini@redhat.com; prefer-encrypt=mutual; keydata= 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 Message-ID: <9d0e9796-b71e-9437-8cd4-a898fd503871@redhat.com> Date: Tue, 27 Nov 2018 14:54:21 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 MIME-Version: 1.0 In-Reply-To: <20181127083706.GB16047@rkaganb.sw.ru> Content-Type: text/plain; charset=iso-8859-2 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Tue, 27 Nov 2018 13:54:36 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 27/11/18 09:37, Roman Kagan wrote: > On Mon, Nov 26, 2018 at 05:44:24PM +0100, Paolo Bonzini wrote: >> On 26/11/18 16:47, Vitaly Kuznetsov wrote: >>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c >>> index 5cd5647120f2..b21b5ceb8d26 100644 >>> --- a/arch/x86/kvm/x86.c >>> +++ b/arch/x86/kvm/x86.c >>> @@ -2997,6 +2997,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) >>> case KVM_CAP_HYPERV_TLBFLUSH: >>> case KVM_CAP_HYPERV_SEND_IPI: >>> case KVM_CAP_HYPERV_ENLIGHTENED_VMCS: >>> + case KVM_CAP_HYPERV_STIMER_DIRECT: >>> case KVM_CAP_PCI_SEGMENT: >>> case KVM_CAP_DEBUGREGS: >>> case KVM_CAP_X86_ROBUST_SINGLESTEP: >>> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h >>> index 2b7a652c9fa4..b8da14cee8e5 100644 >>> --- a/include/uapi/linux/kvm.h >>> +++ b/include/uapi/linux/kvm.h >>> @@ -975,6 +975,7 @@ struct kvm_ppc_resize_hpt { >>> #define KVM_CAP_HYPERV_ENLIGHTENED_VMCS 163 >>> #define KVM_CAP_EXCEPTION_PAYLOAD 164 >>> #define KVM_CAP_ARM_VM_IPA_SIZE 165 >>> +#define KVM_CAP_HYPERV_STIMER_DIRECT 166 >> >> I wonder if all these capabilities shouldn't be replaced by a single >> KVM_GET_HYPERV_SUPPORTED_CPUID ioctl, or something like that. > > Hmm, why? Are we running short of cap numbers? > > Capabilities are a well-established and unambiguous negotiation > mechanism, why invent another one? Besides, not all features map > conveniently onto cpuid bits, e.g. currently we have two versions of > SynIC support, which differ in the way the userspace deals with it, but > not in the cpuid bits we expose in the guest. IMO such an ioctl would > bring more complexity rather than less. Yes, in that case (for bugfixes basically) you'd have to use capabilities. But if the feature is completely hidden to userspace except for the CPUID bit, it seems like a ioctl would be more consistent with the rest of the KVM API. Paolo