From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754594AbaLWJez (ORCPT ); Tue, 23 Dec 2014 04:34:55 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49157 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750997AbaLWJew (ORCPT ); Tue, 23 Dec 2014 04:34:52 -0500 Message-ID: <5499370D.8000703@redhat.com> Date: Tue, 23 Dec 2014 10:34:05 +0100 From: Paolo Bonzini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: "Wu, Feng" , "Zhang, Yang Z" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , "x86@kernel.org" , Gleb Natapov , "dwmw2@infradead.org" , "joro@8bytes.org" , Alex Williamson , Jiang Liu CC: "iommu@lists.linux-foundation.org" , "linux-kernel@vger.kernel.org" , KVM list , Eric Auger Subject: Re: [v3 06/26] iommu, x86: No need to migrating irq for VT-d Posted-Interrupts References: <1418397300-10870-1-git-send-email-feng.wu@intel.com> <1418397300-10870-7-git-send-email-feng.wu@intel.com> <54941326.4080405@redhat.com> <54992C2C.5030305@redhat.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 23/12/2014 10:07, Wu, Feng wrote: >> On 23/12/2014 01:37, Zhang, Yang Z wrote: >>> I don't quite understand it. If user set an interrupt's affinity to a >>> CPU, but he still see the interrupt delivers to other CPUs in host. >>> Do you think it is a right behavior? >> >> No, the interrupt is not delivered at all in the host. Normally you'd have: >> >> - interrupt delivered to CPU from host affinity >> >> - VFIO interrupt handler writes to irqfd >> >> - interrupt delivered to vCPU from guest affinity >> >> Here, you just skip the first two steps. The interrupt is delivered to >> the thread that is running the vCPU directly, so the host affinity is >> bypassed entirely. >> >> ... unless you are considering the case where the vCPU is blocked and >> the host is processing the posted interrupt wakeup vector. In that case >> yes, it would be better to set NDST to a CPU matching the host affinity. > > In my understanding, wakeup vector should have no relationship with the > host affinity of the irq. Wakeup notification event should be delivered to > the pCPU which the vCPU was blocked on. And in kernel's point of view, > the irq is not associated with the wakeup vector, right? That is correct indeed. It is not associated to the wakeup vector, hence this patch is right, I think. However, the wakeup vector has the same function as the VFIO interrupt handler, so you could argue that it is tied to the host affinity rather than the guest. Let's wait for Yang to answer. Paolo