From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Date: Wed, 29 Apr 2009 14:40:03 +0000 Subject: Re: qemu-kvm.git now live Message-Id: <49F866C3.8090904@redhat.com> List-Id: References: <49F08BD0.6000706@redhat.com> In-Reply-To: <49F08BD0.6000706@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ia64@vger.kernel.org Jan Kiszka wrote: >> If migration disables dirty memory logging, it must keep the vga logging >> enabled, and vice versa. >> > > So we need some notifier callbacks on slot changes so that all users can > re-enable dirty logging after the update as required. Simpler to do reference counting. When a user enables logging for a memory range, the refcount for all slots containing that range gets bumped. When a user enables logging for all of memory, a global refcount is bumped. For a given slot, dirty logging is enabled if either the slot logging refcount or the global logging refcount is nonzero. That's sort of what's implemented in qemu-kvm.git. In qemu.git vga logging does not get disabled, which is really broken. It prevents optimizations like disabling logging when the screen is not displayed to a human. > Where/how does the > migration code disable dirty logging? > Should be phase 3 of ram_save_live(). -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.