From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53285) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WYXhU-0007Lm-O9 for qemu-devel@nongnu.org; Fri, 11 Apr 2014 05:24:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WYXhN-00071G-3p for qemu-devel@nongnu.org; Fri, 11 Apr 2014 05:24:44 -0400 Message-ID: <5347B4D3.9060508@suse.de> Date: Fri, 11 Apr 2014 11:24:35 +0200 From: Alexander Graf MIME-Version: 1.0 References: <1394770689-29039-1-git-send-email-aik@ozlabs.ru> <1394770689-29039-7-git-send-email-aik@ozlabs.ru> <534693E4.1050204@suse.de> <53469B86.7020400@ozlabs.ru> <53469BF3.7000406@suse.de> <5346AE11.1050206@ozlabs.ru> In-Reply-To: <5346AE11.1050206@ozlabs.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 6/8] spapr: move interrupt allocator to xics List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy , qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= On 10.04.14 16:43, Alexey Kardashevskiy wrote: > On 04/10/2014 11:26 PM, Alexander Graf wrote: >> On 10.04.14 15:24, Alexey Kardashevskiy wrote: >>> On 04/10/2014 10:51 PM, Alexander Graf wrote: >>>> On 14.03.14 05:18, Alexey Kardashevskiy wrote: >>>>> The current allocator returns IRQ numbers from a pool and does not >>>>> support IRQs reuse in any form as it did not keep track of what it >>>>> previously returned, it only had the last returned IRQ. >>>>> However migration may change interrupts for devices depending on >>>>> their order in the command line. >>>> Wtf? Nonono, this sounds very bogus and wrong. Migration shouldn't change >>>> anything. >>> I put wrong commit message. By change I meant that the default state before >>> the destination guest started accepting migration is different from what >>> the destination guest became after migration finished. And migration cannot >>> avoid changing this default state. >> Ok, why is the IRQ configuration different? > Because QEMU creates devices in the order as in the command line, and > libvirt changes this order - the XML used to create the guest and the XML > which is sends during migration are different. libvirt thinks it is ok > while it keeps @reg property for (for example) spapr-vscsi devices but it > is not because since the order is different, devices call IRQ allocator in > different order and get different IRQs. So your patch migrates the current IRQ configuration, but once you restart the virtual machine on the destination host it will have different IRQ numbering again, right? I'm not sure that's a good solution to the problem. I guess we should rather aim to make sure that we can make IRQ allocation explicit. Fundamentally the problem sounds very similar to the PCI slot allocation which eventually got solved by libvirt specifying the slots manually. Alex