Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp455938ybt; Wed, 1 Jul 2020 02:33:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyGFgg7c1uCqM/oI3r3YUeS8JaZBZxdUJ0w1tX1ZCHhQARMjAnfRO5ML1vPdtm98Tqlrzmn X-Received: by 2002:aa7:d845:: with SMTP id f5mr27236752eds.162.1593596013877; Wed, 01 Jul 2020 02:33:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593596013; cv=none; d=google.com; s=arc-20160816; b=DPumXTcE1xE8EXyAZkhXPwgPk+dvjXjXSZD9epBxIx5sW5mgzBwhrXdGzojuBsEmVY UUVqvXeU2ETT55hycJWUCQ0DRozbSIHkP2QlW5qnbznjjFs8fP83CZoySNkSQ6+hjC3/ sByoJ4NgdIp/MUf/Do/73Xn6U9BxRFTwugZVtwMb0+pgmQSVl965hJ+jjlRsH+Q2P0kf w5CPqjqJiLblNHX+y7N9jG5X3ualN5iOqWdYsy5oPX9MTtHPJC0vzPvT6VRjPbx5KUnO ScFp/sz4HVYOHeG28rWNhM//G2QZ6GslFpsyjhocuGqIaX8fe6ACKaK4x701h6yELeqv YYcg== 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:ironport-sdr:ironport-sdr; bh=Kk0udJJktnJBxW5tmGHY1W+U7MdhBrfrszVPtKFUlSA=; b=GaSkgsbI8hwQlJHNiBZefuVkjrcaYXm4O5LIF75dnlLeX813XN8DZY4D58DSjO30fM eUFNqx55ccopMu6iPcwIJDwmL9Mi0SOo1YVnxeKcoipSK2+4OefG3JIJNrjIQRwHKx/o S4wiDUlHn3lB3ASF3NhVo0MNR7D5iI+b88BRgR87jmExYzkXBJYRfbSAfgtI71Elxt5h AjcYIJIEXiMpf/dAh3B6CST2o98gjHxqnGDpaHXkwJivducoMxej+Q73m6YtVJZJrGXk YBxMV7VZ81FeWzZpd+LX+3sz5Tt8NcFD0XXxbhOnxd51njS+DwczECufLWD9Q/uZJgJ0 Q6Ow== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id i23si3434734eds.82.2020.07.01.02.33.10; Wed, 01 Jul 2020 02:33:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S1729452AbgGAJdA (ORCPT + 99 others); Wed, 1 Jul 2020 05:33:00 -0400 Received: from mga04.intel.com ([192.55.52.120]:58972 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729125AbgGAJc7 (ORCPT ); Wed, 1 Jul 2020 05:32:59 -0400 IronPort-SDR: AAEhakG+OcgAVZ2LEtwjaOTxoonbHU4icWraLazP5hcXqQzebymBlZnb8tEzpNTiJq0M3HcoYL qT/Vnwp4N6ew== X-IronPort-AV: E=McAfee;i="6000,8403,9668"; a="144022533" X-IronPort-AV: E=Sophos;i="5.75,299,1589266800"; d="scan'208";a="144022533" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jul 2020 02:32:58 -0700 IronPort-SDR: xPVmHT9r7rUz4ROWtBdompbiKh6cjb5Z+vG9xsw7w1ClrxwrAbTCELUz2R1TC7WyyBlPHckyT+ bqe9gywTZcog== X-IronPort-AV: E=Sophos;i="5.75,299,1589266800"; d="scan'208";a="455036278" Received: from unknown (HELO [10.239.13.99]) ([10.239.13.99]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jul 2020 02:32:56 -0700 Subject: Re: [RFC 2/2] KVM: VMX: Enable bus lock VM exit To: Vitaly Kuznetsov , Chenyi Qiang Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Paolo Bonzini , Sean Christopherson , Wanpeng Li , Jim Mattson , Joerg Roedel References: <20200628085341.5107-1-chenyi.qiang@intel.com> <20200628085341.5107-3-chenyi.qiang@intel.com> <878sg3bo8b.fsf@vitty.brq.redhat.com> From: Xiaoyao Li Message-ID: <0159554d-82d5-b388-d289-a5375ca91323@intel.com> Date: Wed, 1 Jul 2020 17:32:53 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <878sg3bo8b.fsf@vitty.brq.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 On 7/1/2020 5:04 PM, Vitaly Kuznetsov wrote: > Chenyi Qiang writes: [...] >> static const int kvm_vmx_max_exit_handlers = >> @@ -6830,6 +6838,13 @@ static fastpath_t vmx_vcpu_run(struct kvm_vcpu *vcpu) >> if (unlikely(vmx->exit_reason.failed_vmentry)) >> return EXIT_FASTPATH_NONE; >> >> + /* >> + * check the exit_reason to see if there is a bus lock >> + * happened in guest. >> + */ >> + if (vmx->exit_reason.bus_lock_detected) >> + handle_bus_lock(vcpu); > > In case the ultimate goal is to have an exit to userspace on bus lock, I don't think we will need an exit to userspace on bus lock. See below. > the two ways to reach handle_bus_lock() are very different: in case > we're handling EXIT_REASON_BUS_LOCK we can easily drop to userspace by > returning 0 but what are we going to do in case of > exit_reason.bus_lock_detected? The 'higher priority VM exit' may require > exit to userspace too. So what's the plan? Maybe we can ignore the case > when we're exiting to userspace for some other reason as this is slow > already and force the exit otherwise? > And should we actually introduce > the KVM_EXIT_BUS_LOCK and a capability to enable it here? > Introducing KVM_EXIT_BUS_LOCK maybe help nothing. No matter EXIT_REASON_BUS_LOCK or exit_reason.bus_lock_detected, the bus lock has already happened. Exit to userspace cannot prevent bus lock, so what userspace can do is recording and counting as what this patch does in vcpu->stat.bus_locks.