Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751818AbdLUOc2 (ORCPT ); Thu, 21 Dec 2017 09:32:28 -0500 Received: from mx1.redhat.com ([209.132.183.28]:53326 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751279AbdLUOcZ (ORCPT ); Thu, 21 Dec 2017 09:32:25 -0500 Subject: Re: [PATCH RFC 0/7] KVM: nVMX: enlightened VMCS initial implementation To: Vitaly Kuznetsov Cc: kvm@vger.kernel.org, x86@kernel.org, =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , "Michael Kelley (EOSG)" , Mohammed Gamal , Cathy Avery , Bandan Das , Roman Kagan , linux-kernel@vger.kernel.org, devel@linuxdriverproject.org References: <20171218171742.5765-1-vkuznets@redhat.com> <87po7alupo.fsf@vitty.brq.redhat.com> <87vah0w8h9.fsf@vitty.brq.redhat.com> From: Paolo Bonzini Message-ID: Date: Thu, 21 Dec 2017 15:32:14 +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: <87vah0w8h9.fsf@vitty.brq.redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Thu, 21 Dec 2017 14:32:25 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 746 Lines: 24 On 21/12/2017 13:50, Vitaly Kuznetsov wrote: > I'm back with (somewhat frustrating) results (E5-2603): v4 (that would be Broadwell)? > 1) Windows on Hyper-V (no nesting): 1350 cycles > > 2) Windows on Hyper-V on Hyper-V: 8600 > > 3) Windows on KVM (no nesting): 1150 cycles > > 4) Windows on Hyper-V on KVM (no enlightened VMCS): 18200 > > 5) Windows on Hyper-V on KVM (enlightened VMCS): 17100 What version were you using for KVM? There are quite a few nested virt optimizations in kvm/queue (which may make enlightened VMCS both more or less efficient). In particular, with latest kvm/queue you could try tracing vmread and vmwrite vmexits, and see if you get any. If you do, that might be an easy few hundred cycles savings. Paolo