Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751989AbeAPNji (ORCPT + 1 other); Tue, 16 Jan 2018 08:39:38 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49160 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750831AbeAPNjh (ORCPT ); Tue, 16 Jan 2018 08:39:37 -0500 Subject: Re: [RFC 0/6] Enlightened VMCS support for KVM on Hyper-V To: Vitaly Kuznetsov , Wanpeng Li Cc: kvm , the arch/x86 maintainers , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , "Michael Kelley (EOSG)" , Mohammed Gamal , Cathy Avery , Bandan Das , linux-kernel@vger.kernel.org References: <20180115173105.31845-1-vkuznets@redhat.com> <87inc2huux.fsf@vitty.brq.redhat.com> From: David Hildenbrand Organization: Red Hat GmbH Message-ID: Date: Tue, 16 Jan 2018 14:39:09 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <87inc2huux.fsf@vitty.brq.redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Tue, 16 Jan 2018 13:39:36 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On 16.01.2018 13:05, Vitaly Kuznetsov wrote: > Wanpeng Li writes: > >> 2018-01-16 1:30 GMT+08:00 Vitaly Kuznetsov : >>> Early RFC. I'll refer to this patchset in my DevConf/FOSDEM >>> presentations. >>> >>> When running nested KVM on Hyper-V it's possible to use so called >>> 'Enlightened VMCS' and do normal memory reads/writes instead of >>> doing VMWRITE/VMREAD instructions. Tests show that this speeds up >>> tight CPUID loop almost 3 times: >>> >>> Before: >>> ./cpuid_tight >>> 20459 >>> >>> After: >>> ./cpuid_tight >>> 7698 >> >> Maybe you can apply a similar idea to kvm nested on kvm. >> > > Yes we can. Basically, that would mean directly accessing 'struct > vmcs12' from L1 hypervisor. > Haven't looked into the details, but we have to watch out for other VCPUs trying to modify that vmcs12. Basically because other VCPUs could try to modify values in vmcs12 while we are currently building vmcs02. Nasty races could result in us copying stuff (probably unchecked) into vmcs02 and therefore running something that was not intended. If this is not possible with the current design, perfect :) -- Thanks, David / dhildenb