Received: from eggs.gnu.org ([2001:4830:134:3::10]:51105) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZrNV9-0000Ph-My for qemu-devel@nongnu.org; Wed, 28 Oct 2015 05:58:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZrNV5-0005UU-NU for qemu-devel@nongnu.org; Wed, 28 Oct 2015 05:58:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55187) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZrNV5-0005UP-IB for qemu-devel@nongnu.org; Wed, 28 Oct 2015 05:58:35 -0400 From: Juan Quintela In-Reply-To: <002b01d110c0$4a5c8e40$df15aac0$@samsung.com> (Pavel Fedin's message of "Tue, 27 Oct 2015 17:03:42 +0300") References: <012c01d110a6$cd61cf90$68256eb0$@samsung.com> <87k2q8e8d4.fsf@neno.neno> <002b01d110c0$4a5c8e40$df15aac0$@samsung.com> Date: Wed, 28 Oct 2015 10:58:33 +0100 Message-ID: <877fm7b9h2.fsf@neno.neno> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH] migration: Introduce migration_in_completion() Reply-To: quintela@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pavel Fedin Cc: 'Amit Shah' , qemu-devel@nongnu.org, 'Luiz Capitulino' Pavel Fedin wrote: > Hello! > >> Applied, thanks. > > Thank you. > >> I wonder who it has never been needed before. BTW, what is ITS? > > ITS is Interrupt Translation Service. It is used by ARM64 > architecture. In a short, it is a special hardware which performs > table-based lookup of MSI IDs and their destination CPUs, and routes > them. There can be lots of CPUs and lots of interrupts, so > these tables are large and are held in a system RAM. > qemu implementation of this thing needs to be able to flush its > internal cached state into memory for live migration. This has to > be done during final stage, right after CPUs have been stopped, > because right after this point migration code will recheck RAM > status and send out modified data for the last time. > The implementation itself has to wait, because the necessary KVM API > is also not ready yet, but i prefer to upstream as much of the > infrastructure as possible, because: a) we want to reduce amount of > out-of-tree patches for our project; b) these things affect qemu > core code, and upstreaming them makes sure that we do it right, and > our out-of-tree code will not diverge from the upstream too > much. Power people have a similar problem with its hashed page tables, they integrated their own save_live implementation because they are too big for the last stage. You can look there for inspiration. How big are we talking here? Thanks, Juan. > > Kind regards, > Pavel Fedin > Expert Engineer > Samsung Electronics Research center Russia