Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4710129pxj; Tue, 8 Jun 2021 23:18:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJynJvjvjARF9OGEz2FL/v7wRq5ac1z7B5n6mdrpXdjOqoS2vj+MLCRt7XqTdtoV2Twi/+fj X-Received: by 2002:a17:906:1815:: with SMTP id v21mr27017641eje.376.1623219505128; Tue, 08 Jun 2021 23:18:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623219505; cv=none; d=google.com; s=arc-20160816; b=fjM1WkhDOraADMdbXgnX+4zaQlg6YPOXk6FLbmLjpQc492hk8tJGgU5tf8JBYP+74p B2bAFT970OLi+QCAZeXv87Tacu/rJXpdzSvd117qrkNivprqSpGKNYE4oP19o8SfwlCS CD+ZKbhl3rFgZ52KHkDNY+L2g7AXE2VXYeqOykX3lDpnTp6MO7R8dhD0ihh7NHLhuQJi +qB6czFBI6WHjVT7xEIBrxdSF/VVv5hLj6yBeJ3hLcehCdmZW92Swahs2bmWeM738dSm +Dv9BSVTriaZ4/CJ5TuXHj2W8MLI1pxtsiKmWSkrorbgPwl0De1X6TuorhVXq7W46zsG r52Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=XwlxQ9Ne7VITYTrHKAQ6cxJKrlsTB+fMYIzZxCbcXyE=; b=UeA1sNE0WjupPslvI3rInsg4Qlvv9vKdXqscv+bQ3Tr+LjO79nhSDxrQorfSr7BhIm YwSbP77dlXaUb1hhfjTceYUbHZqNLUTCYcvRKACLq483bepGZnIEy6i/ddWoAYUlYdcU o9SqAQKwxxgXvdZ3xIX+UqqJKGzZRHJgEa2kiNV8QRtuyXRZKZy0ejXaAprB+k9ZZ9Vb KQSsgOdGoNcPnezpFUeSAbyIvhgvz4zF6+thOQ/dZM+vosR9pruZJxFdKAlZZ2EZ/BLw /fAEoohz37CLnFXptWapZ6FN2SzdirPs2iRCiUdjaWtj0rtr0rhlck+jbH3aVqDqKZa5 1RkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=YBJCDDFM; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 4si1615738ejr.126.2021.06.08.23.18.01; Tue, 08 Jun 2021 23:18:25 -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; dkim=pass header.i=@google.com header.s=20161025 header.b=YBJCDDFM; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231474AbhFHQhz (ORCPT + 99 others); Tue, 8 Jun 2021 12:37:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229724AbhFHQhz (ORCPT ); Tue, 8 Jun 2021 12:37:55 -0400 Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF798C061574 for ; Tue, 8 Jun 2021 09:35:48 -0700 (PDT) Received: by mail-pg1-x529.google.com with SMTP id e20so5014347pgg.0 for ; Tue, 08 Jun 2021 09:35:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=XwlxQ9Ne7VITYTrHKAQ6cxJKrlsTB+fMYIzZxCbcXyE=; b=YBJCDDFMd5CLaph7grIInggM9odiLuLNIv2Q1AIESL289DTpiTiUR60TnT+nuqNxwp DB5YdcpzPR+AXl90k3MbzBnQDQKv3zqTEilIaubJwyyME92ZWcFEebYUEpR1I1wpyp6v Xd1EqBXf9J+fwdV1/agx2kR5kmTOijQOkpPBTy8eUBy5vhlFQxkMh/Kp8dca+ayjIs9+ CirrLPSDqStAiCS7bscw4AjIR5On2CIYmkowvyFq1nK61YsDqu3lG7/YF/9FrM+7Hmfd Ex+Bkq0nHRj4Rq0R5m9k5tN2SJRic+D11UwZ6K2TR+aQy14wEWN+XGzSyIgmxTqyml2w s7ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=XwlxQ9Ne7VITYTrHKAQ6cxJKrlsTB+fMYIzZxCbcXyE=; b=lWv8PAO3zz3RXVZMDITqK8wK75RQ94k2qXVv+LRbetLSYgedgRZfuriAXsnskJpnZX nrvTqLVnntpVSGLxuU0Vb65ZLFm0OnZWlwKo8UN10H/DQhVHErqprKAomurVFaaJ3AP8 wlivLdWbxaZK4CFDgpthsnuzhK/sVFn+2u9LAK3hHa5d6aJcB3W3UayvPWhYZ3vWQzGv 8q8Qe0ZAK9sgRAs8ZZ8OsAlI6SgPhnIcruXXA0rP+uduB+qdLS7eY2JRKt9biSq2NN78 B9koazP5/m04B3S4MgcA4k8zlLWziB/qf7vsk9CzEn5SAI/H4N9gysMJHLhEMn9dneTv 4Fmg== X-Gm-Message-State: AOAM530wQrrnKGdWXNjqEzwdIgeoIQIqvs1MtR3RIt5tj+IL0dF+PCGW c3SgBPeS/sg9fD99psFqUtNzI80BkvYqcA== X-Received: by 2002:a63:1d61:: with SMTP id d33mr23265156pgm.331.1623170148297; Tue, 08 Jun 2021 09:35:48 -0700 (PDT) Received: from google.com (240.111.247.35.bc.googleusercontent.com. [35.247.111.240]) by smtp.gmail.com with ESMTPSA id m191sm11505013pga.88.2021.06.08.09.35.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jun 2021 09:35:47 -0700 (PDT) Date: Tue, 8 Jun 2021 16:35:43 +0000 From: Sean Christopherson To: Wanpeng Li Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Paolo Bonzini , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel Subject: Re: [PATCH v2 3/3] KVM: X86: Let's harden the ipi fastpath condition edge-trigger mode Message-ID: References: <1623050385-100988-1-git-send-email-wanpengli@tencent.com> <1623050385-100988-3-git-send-email-wanpengli@tencent.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1623050385-100988-3-git-send-email-wanpengli@tencent.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 07, 2021, Wanpeng Li wrote: > From: Wanpeng Li > > Let's harden the ipi fastpath condition edge-trigger mode. Can you elaborate on the motivation for this patch? Intel's SDM states that the trigger mode is ignored for all IPIs except INIT, and even clarifies that the local xAPIC will override the bit and send the IPI as edge-triggered. AMD's APM on the other hand explicitly lists level-triggered Fixed IPIs as a valid ICR combination. Regardless of which of the two conflicting specs we want KVM to emulate (which is currently AMD), I don't see why the fastpath code should care, as I can't find anything in the kvm_apic_send_ipi() path that would go awry if it's called from the fastpath for a level-triggered IPI. Related side topic, anyone happen to know if KVM (and Qemu's) emulation of IPIs intentionally follows AMD instead of Intel? I suspect it's unintentional, especially since KVM's initial xAPIC emulation came from Intel. Not that it's likely to matter, but allowing level-triggered IPIs is bizarre, e.g. getting an EOI sent to the right I/O APIC at the right time via a level-triggered IPI seems extremely convoluted. > Signed-off-by: Wanpeng Li > --- > arch/x86/kvm/x86.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index b594275..dbd3e9d 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -1922,6 +1922,7 @@ static int handle_fastpath_set_x2apic_icr_irqoff(struct kvm_vcpu *vcpu, u64 data > return 1; > > if (((data & APIC_SHORT_MASK) == APIC_DEST_NOSHORT) && > + ((data & APIC_INT_LEVELTRIG) == 0) && > ((data & APIC_DEST_MASK) == APIC_DEST_PHYSICAL) && > ((data & APIC_MODE_MASK) == APIC_DM_FIXED) && > ((u32)(data >> 32) != X2APIC_BROADCAST)) { > -- > 2.7.4 >