From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH 2/2] Device assignment: Fix MSI IRQ affinity setting Date: Thu, 24 May 2012 18:53:15 -0300 Message-ID: <4FBEADCB.2010900@siemens.com> References: <1337878924-39069-1-git-send-email-richard@nod.at> <1337878924-39069-2-git-send-email-richard@nod.at> <1337883627.4714.32.camel@ul30vt> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Alex Williamson , Richard Weinberger , kvm@vger.kernel.org, avi@redhat.com, Marcelo Tosatti , Bjorn Helgaas , "Michael S. Tsirkin" To: Thomas Gleixner Return-path: Received: from goliath.siemens.de ([192.35.17.28]:23174 "EHLO goliath.siemens.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932105Ab2EXVxa (ORCPT ); Thu, 24 May 2012 17:53:30 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 2012-05-24 18:39, Thomas Gleixner wrote: > On Thu, 24 May 2012, Alex Williamson wrote: >> On Thu, 2012-05-24 at 18:02 +0100, Richard Weinberger wrote: >>> + if (address == msi_start + PCI_MSI_DATA_32) >>> + handle_cfg_write_msi(pci_dev, assigned_dev); >> >> Why didn't we just use range_covers_byte(address, len, pci_dev->msi_cap >> + PCI_MSI_DATA_32) to start with? But how does this handle the enable >> bit? > > The problem with the current implementation is that it only changes > the routing if the msi entry goes from masked to unmasked state. > > Linux does not mask the entries on affinity changes and never did, > neither for MSI nor for MSI-X. > > I know it's probably not according to the spec, but we can't fix that > retroactively. For MSI, this is allowed. For MSI-X, this would clearly be a Linux bug, waiting for hardware to dislike this spec violation. However, if this is the current behavior of such a prominent guest, I guess we have to stop optimizing the QEMU MSI-X code that it only updates routings on mask changes. Possibly other OSes get this wrong too... Thanks, for the clarification. Should go into the changelog. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux