From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 0/2][RFC] postcopy migration: Linux char device for postcopy Date: Thu, 29 Dec 2011 13:24:32 +0200 Message-ID: <4EFC4DF0.2040708@redhat.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org, t.hirofuchi@aist.go.jp, satoshi.itoh@aist.go.jp To: Isaku Yamahata Return-path: Received: from mx1.redhat.com ([209.132.183.28]:58686 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753161Ab1L2LYm (ORCPT ); Thu, 29 Dec 2011 06:24:42 -0500 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 12/29/2011 03:26 AM, Isaku Yamahata wrote: > This is Linux kernel driver for qemu/kvm postcopy live migration. > This is used by qemu/kvm postcopy live migration patch. > > TODO: > - Consider FUSE/CUSE option > So far several mmap patches for FUSE/CUSE are floating around. (their > purpose isn't different from our purpose, though). They haven't merged > into the upstream yet. > The driver specific part in qemu patches is modularized. So I expect it > wouldn't be difficult to switch kernel driver to CUSE based driver. It would be good to get more input about this, please involve lkml and the FUSE/CUSE people. > ioctl commands: > > UMEM_DEV_CRATE_UMEM: create umem device for qemu > UMEM_DEV_LIST: list created umem devices > UMEM_DEV_REATTACH: re-attach the created umem device > UMEM_DEV_LIST and UMEM_DEV_REATTACH are used when > the process that services page fault disappears or get stack. > Then, administrator can list the umem devices and unblock > the process which is waiting for page. Ah, I asked about this in my patch comments. I think this is done better by using SCM_RIGHTS to pass fds along, or asking qemu to launch a new process. Introducing a global namespace has a lot of complications attached. > > UMEM_GET_PAGE_REQUEST: retrieve page fault of qemu process > UMEM_MARK_PAGE_CACHED: mark the specified pages pulled from the source > for daemon > > UMEM_MAKE_VMA_ANONYMOUS: make the specified vma in the qemu process > This is _NOT_ implemented yet. > anonymous I'm not sure whether this can be implemented > or not. How do we find out? This is fairly important, stuff like transparent hugepages and ksm only works on anonymous memory. -- error compiling committee.c: too many arguments to function