From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751351AbcGMJyj (ORCPT ); Wed, 13 Jul 2016 05:54:39 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:34639 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750739AbcGMJyb (ORCPT ); Wed, 13 Jul 2016 05:54:31 -0400 Subject: Re: [RFC PATCH 4/4] KVM: vmx: add support for emulating UMIP To: Paolo Bonzini , linux-kernel@vger.kernel.org, kvm@vger.kernel.org References: <1468351223-3250-1-git-send-email-pbonzini@redhat.com> <1468351223-3250-5-git-send-email-pbonzini@redhat.com> <8f893604-1e80-2979-bc87-45a049238e58@gmail.com> From: Yang Zhang Message-ID: <9d4f7e9c-3468-3cf7-e1e8-2a9352a72c93@gmail.com> Date: Wed, 13 Jul 2016 17:54:24 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016/7/13 17:35, Paolo Bonzini wrote: > > > On 13/07/2016 11:21, Yang Zhang wrote: >>> >>> + if ((cr4 & X86_CR4_UMIP) && !boot_cpu_has(X86_FEATURE_UMIP)) { >>> + vmcs_set_bits(SECONDARY_VM_EXEC_CONTROL, >>> + SECONDARY_EXEC_DESC); >>> + hw_cr4 &= ~X86_CR4_UMIP; >>> + } else >>> + vmcs_clear_bits(SECONDARY_VM_EXEC_CONTROL, >>> + SECONDARY_EXEC_DESC); >>> + >> >> Since the faults based on privilege level have priority over VM exits. >> So we don't need to enable/disable SECONDARY_EXEC_DESC dynamically. >> Instead, we can set it unconditionally. > > I'm setting it dynamically because it slows down LGDT, LLDT, LIDT and LTR. You are right. And SGDT, SIDT, SLDT, SMSW, STR also will be intercepted even in CPL 0 if we don't disable it. -- Yang Alibaba Cloud Computing