Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp3673873ybi; Sun, 14 Jul 2019 19:47:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqzzNml/EqwsB8mO2VPvxEw4tMVHrUWjktkTGKqcxdAEhbfpsw7xN1rPHuTQ8X8a+2Vgh9BS X-Received: by 2002:a17:902:788f:: with SMTP id q15mr26229391pll.236.1563158839050; Sun, 14 Jul 2019 19:47:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563158839; cv=none; d=google.com; s=arc-20160816; b=zuaKIjR+Lj8e4rJ/vbuKtGcuN75/6/azDOTuHlZ4QAc3iV/t6nIreArL+gL+Jrb8wF r5wYRGDC/glG0OTUtJpErS0HOC+0GLj7nu884/bGbuxzNZeeOBIDhVhAh7PjwFR/UY2m XFIElZ+uRNUblkiLjfQwz3vOfRq9/cdXs33p+8ukX3J0A6ahf6wtvPNFAcDuY2zdsQ7C PLuyz1Wg+2H6ED3hmiQRbKvTQSWjtH1QSHR/VhYQrO1P3zPlWEgHqLnH48t67NPepMsv GKBZd2zrGe3LSIAYZnhiBWGd15JWKvkqrs+4zyqczE1uk276XSzfUyG1rWWdeLGQ8x8I SCxA== 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:from:references:cc:to:subject; bh=A3hV2hVEM6whHSN+8J9aO3s13GxAy2xMaulm8cs1If4=; b=LTWMO6B3OvMITV9AdhRjLrBhXVuAFvKrDiZ4gHI5kcF+4sWN5ux6Uu9RBaoHTcPrOm 4C/ReEJPJOz9IsNV6gG6q8wSDcDbOqDpO7kguGrATCwTEQvCN5xve3deixQ0J3qKagsO ngT1qLyDaka2bqdiQ5zFJQ50z/h/JeS/DENE+caCr5A6e4wQZF1WG7v6JKT+oe8xHVOO eTMoYUMUyRtKgngFX+j0BuMLzXOh2KvqkzWsDkrqntX0+sf6i7xyL/hgIoz9jg8ZpO6U /B29JxenGkr97LHmnnfRHGuCPBkvQBHJ6dOiAwiBKuYUc24DxzPHiQnCAtrgenMJDW0x tTNw== 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=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k11si16253876pfi.3.2019.07.14.19.46.58; Sun, 14 Jul 2019 19:47:19 -0700 (PDT) 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728933AbfGOCqg (ORCPT + 99 others); Sun, 14 Jul 2019 22:46:36 -0400 Received: from mga18.intel.com ([134.134.136.126]:8339 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726025AbfGOCqf (ORCPT ); Sun, 14 Jul 2019 22:46:35 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Jul 2019 19:46:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,492,1557212400"; d="scan'208";a="160960032" Received: from liujing-mobl.ccr.corp.intel.com (HELO [10.238.128.226]) ([10.238.128.226]) by orsmga008.jf.intel.com with ESMTP; 14 Jul 2019 19:46:33 -0700 Subject: Re: [PATCH v1] KVM: x86: expose AVX512_BF16 feature to guest To: Paolo Bonzini , kvm@vger.kernel.org Cc: linux-kernel@vger.kernel.org References: <1562824197-13658-1-git-send-email-jing2.liu@linux.intel.com> <305e2a40-93a3-23ed-71a2-d3f2541e837a@redhat.com> From: Jing Liu Message-ID: <9a9226bb-8050-e650-a8e5-0030cdd6862d@linux.intel.com> Date: Mon, 15 Jul 2019 10:46:33 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 MIME-Version: 1.0 In-Reply-To: <305e2a40-93a3-23ed-71a2-d3f2541e837a@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Paolo, Thanks for your reviewing! There also has Qemu patch sent here, https://www.mail-archive.com/qemu-devel@nongnu.org/msg630359.html Could you please review that? Thanks very much! Jing On 7/13/2019 6:37 PM, Paolo Bonzini wrote: > On 11/07/19 07:49, Jing Liu wrote: >> AVX512 BFLOAT16 instructions support 16-bit BFLOAT16 floating-point >> format (BF16) for deep learning optimization. >> >> Intel adds AVX512 BFLOAT16 feature in CooperLake, which is CPUID.7.1.EAX[5]. >> >> Detailed information of the CPUID bit can be found here, >> https://software.intel.com/sites/default/files/managed/c5/15/\ >> architecture-instruction-set-extensions-programming-reference.pdf. >> >> Signed-off-by: Jing Liu >> --- >> >> This patch depends on kernel patch https://lkml.org/lkml/2019/6/19/912 >> and Paolo's patch set https://lkml.org/lkml/2019/7/4/468. >> >> arch/x86/kvm/cpuid.c | 12 +++++++++++- >> 1 file changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c >> index 8fc6039..0c125dd 100644 >> --- a/arch/x86/kvm/cpuid.c >> +++ b/arch/x86/kvm/cpuid.c >> @@ -358,9 +358,13 @@ static inline void do_cpuid_7_mask(struct kvm_cpuid_entry2 *entry, int index) >> F(SPEC_CTRL_SSBD) | F(ARCH_CAPABILITIES) | F(INTEL_STIBP) | >> F(MD_CLEAR); >> >> + /* cpuid 7.1.eax */ >> + const u32 kvm_cpuid_7_1_eax_x86_features = >> + F(AVX512_BF16); >> + >> switch (index) { >> case 0: >> - entry->eax = 0; >> + entry->eax = min(entry->eax, 1); >> entry->ebx &= kvm_cpuid_7_0_ebx_x86_features; >> cpuid_mask(&entry->ebx, CPUID_7_0_EBX); >> /* TSC_ADJUST is emulated */ >> @@ -384,6 +388,12 @@ static inline void do_cpuid_7_mask(struct kvm_cpuid_entry2 *entry, int index) >> */ >> entry->edx |= F(ARCH_CAPABILITIES); >> break; >> + case 1: >> + entry->eax &= kvm_cpuid_7_1_eax_x86_features; >> + entry->ebx = 0; >> + entry->ecx = 0; >> + entry->edx = 0; >> + break; >> default: >> WARN_ON_ONCE(1); >> entry->eax = 0; >> > > Queued, thanks. > > Paolo >