Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp6176779ybx; Mon, 11 Nov 2019 05:10:40 -0800 (PST) X-Google-Smtp-Source: APXvYqzKSQ1K1nXWuLwgmC1D+uZcrxxY3CNqrJpQbrd2LKwq2DdMcmyIy3n4emZ8AE7t/EjCYdnE X-Received: by 2002:a50:b6cb:: with SMTP id f11mr26037299ede.299.1573477840494; Mon, 11 Nov 2019 05:10:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573477840; cv=none; d=google.com; s=arc-20160816; b=JzJIK0gbP0i+DKoGSTb4nCrrLVw8OjgBw/4VZALk6guI4t6K/TMelSPqmaGq/aF1Of zNjpx3I5uIMemWApAXh1NpnF8TGNYU9gsn4XwiJq1GWAvmiv/zUwurC8SA3Por22eAXy JTZmLtbCSCa/19ELfXYHt8hM5I6C19N2H89wI6GPFVm6WGLzQW0d8MUViUs7yqGqHAMJ phhE1kVfpV8FlLVOVpICrkHStt3wraZ0g6c/6KBvhb5AHmtXlclFTiGThTeVVftCqQ0c VsCo1dqPJrZkBzigukckkneBWhLBRzOfR1Ij9Lw4wdQI0bqtslnNFeg9M9VASuA6TDt/ JXwQ== 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:mime-version :message-id:date:references:in-reply-to:subject:cc:to:from :dkim-signature; bh=/nIfQxqLHF8WJH+rEaKW6Wt3dYLJAu1w6JfOqOMD8TI=; b=an6l5odf3hx0n/wp3nzP/vSAurQir2L0P0I2rNoisokBfKF0QmI9ybhEJ5+dgZxku2 1DnDFTUmwFmBOpl/OFQoqpaO6lE/Dvc19CIvBQtCwQn923N0z5pD0FGGTSUOyE7cVaZV oL1EzHb8StEsF0yJFXLEqtQJ8NYE7/rEHm8gJIembdTpZoJ5Um22n5v/ZwqvG81Z9ODQ eUR5cm8glwXPla7U2lt+wg6Pf4+wA4DezQwstbKUfVeCWg5mHztoDRlqUcuhK9a/FvjE SpWfZepOx98Pis/QRnQCzXzsh2ZYmvxygAMJdXNcOahwc8ndWg/q4pmWtVyDg58BMtGg BK1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=VRK2HZDq; 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=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y24si6098529ejc.170.2019.11.11.05.10.16; Mon, 11 Nov 2019 05:10:40 -0800 (PST) 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; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=VRK2HZDq; 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=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726985AbfKKNG7 (ORCPT + 99 others); Mon, 11 Nov 2019 08:06:59 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:51598 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726902AbfKKNG7 (ORCPT ); Mon, 11 Nov 2019 08:06:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1573477618; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/nIfQxqLHF8WJH+rEaKW6Wt3dYLJAu1w6JfOqOMD8TI=; b=VRK2HZDqMjCOZJaP107O+VzKJFetiqMs0fr9SNJk4neAWpK2/I4Xt17S2+xiAXuvU69j2d wGz8y3p7M77jXMEzvOQUnDIaAMX+9fikPhZ+5zQ/WPfxITuib/erXXczYMel3cRteBl9ev t38be5nXrvNe8IAv/DJajVDENDRP+tw= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-78-22L5RAfJMgG7Pxd9cNt5QA-1; Mon, 11 Nov 2019 08:06:55 -0500 Received: by mail-wm1-f71.google.com with SMTP id t203so6830195wmt.7 for ; Mon, 11 Nov 2019 05:06:55 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version; bh=4OAS54iB143xVEPD/7rq6ekQ537whRG3Ob2iaMwvFJk=; b=uDeX4Rj5YRP9N4kUBBeH1npu1Kwvgp4XbvFRY+4LiHN8C18CVEEwj7bCBkpeUb7HEi GVyI1zQjZ2pxj1AFTjVL2VTe4TgC7Px/Rg7L7aHh4kTttEg+e8vI4QRX9BhQKH31C7da vrOpzHeDkGCsn83Ki2+3hQ7pBSojxU3BD9WDUPXpTJkvpDBwtqOmxbbi7H16Ard2/WLw /4krOQ1DEHEzX7uo4fHzmXubl9qQOChuxr71YIPQdw2dptiZ6NFjw+MQDofWwtwSJu9V p0Aved5EMaY9r4LT3+zRnHCEarwLduRc9VL8K7vRhnMc0namq6GJPLNVnegUhc2CpVO+ saBg== X-Gm-Message-State: APjAAAW/J8Gv+Pt7Re9nlvPg7L9Tw0dgbN4gaDy837TTkJR5lgCUpFs0 l1Ufy0kOlP4HcJoIIyrn7SRjB+XMI8kOPOQr/A1LtEHgrworemBnlbKEEfppHOPxR7w+ZJdoqy9 S/LYJi9W6aphUw8D+Hml1R2+S X-Received: by 2002:a5d:6585:: with SMTP id q5mr19749280wru.158.1573477614479; Mon, 11 Nov 2019 05:06:54 -0800 (PST) X-Received: by 2002:a5d:6585:: with SMTP id q5mr19749257wru.158.1573477614262; Mon, 11 Nov 2019 05:06:54 -0800 (PST) Received: from vitty.brq.redhat.com (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id w10sm13512097wmd.26.2019.11.11.05.06.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Nov 2019 05:06:53 -0800 (PST) From: Vitaly Kuznetsov To: Wanpeng Li Cc: Paolo Bonzini , Radim =?utf-8?B?S3LEjW3DocWZ?= , Sean Christopherson , Wanpeng Li , Jim Mattson , Joerg Roedel , linux-kernel@vger.kernel.org, kvm@vger.kernel.org Subject: Re: [PATCH 1/2] KVM: X86: Single target IPI fastpath In-Reply-To: <1573283135-5502-1-git-send-email-wanpengli@tencent.com> References: <1573283135-5502-1-git-send-email-wanpengli@tencent.com> Date: Mon, 11 Nov 2019 14:06:52 +0100 Message-ID: <87mud2sgsz.fsf@vitty.brq.redhat.com> MIME-Version: 1.0 X-MC-Unique: 22L5RAfJMgG7Pxd9cNt5QA-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Wanpeng Li writes: > + > static void vmx_vcpu_run(struct kvm_vcpu *vcpu) > { > =09struct vcpu_vmx *vmx =3D to_vmx(vcpu); > @@ -6615,6 +6645,12 @@ static void vmx_vcpu_run(struct kvm_vcpu *vcpu) > =09=09=09=09 | (1 << VCPU_EXREG_CR3)); > =09vcpu->arch.regs_dirty =3D 0; > =20 > +=09vmx->exit_reason =3D vmx->fail ? 0xdead : vmcs_read32(VM_EXIT_REASON)= ; > +=09vcpu->fast_vmexit =3D false; > +=09if (!is_guest_mode(vcpu) && > +=09=09vmx->exit_reason =3D=3D EXIT_REASON_MSR_WRITE) > +=09=09vcpu->fast_vmexit =3D handle_ipi_fastpath(vcpu); I have to admit this looks too much to me :-( Yes, I see the benefits of taking a shortcut (by actualy penalizing all other MSR writes) but the question I have is: where do we stop? Also, this 'shortcut' creates an imbalance in tracing: you don't go down to kvm_emulate_wrmsr() so handle_ipi_fastpath() should probably gain a tracepoint. Looking at 'fast_vmexit' name makes me think this is something generic. Is this so? Maybe we can create some sort of an infrastructure for fast vmexit handling and make it easy to hook things up to it? (Maybe it's just me who thinks the codebase is already too complex, let's see what Paolo and other reviewers have to say). --=20 Vitaly