From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Qemu-devel] [5874] Add virtio-balloon support Date: Fri, 05 Dec 2008 08:21:43 -0600 Message-ID: <493938F7.7090602@codemonkey.ws> References: <1228426490.19459.44.camel@localhost.localdomain> <49385B02.9010206@codemonkey.ws> <200812051414.38406.paul@codesourcery.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: qemu-devel@nongnu.org, Hollis Blanchard , Rusty Russell , kvm-devel To: Paul Brook Return-path: Received: from yx-out-2324.google.com ([74.125.44.29]:1807 "EHLO yx-out-2324.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752448AbYLEOVs (ORCPT ); Fri, 5 Dec 2008 09:21:48 -0500 Received: by yx-out-2324.google.com with SMTP id 8so8927yxm.1 for ; Fri, 05 Dec 2008 06:21:47 -0800 (PST) In-Reply-To: <200812051414.38406.paul@codesourcery.com> Sender: kvm-owner@vger.kernel.org List-ID: Paul Brook wrote: > On Thursday 04 December 2008, Anthony Liguori wrote: > >> Hollis Blanchard wrote: >> >>> On Thu, 2008-12-04 at 20:33 +0000, Anthony Liguori wrote: >>> >>>> +static void balloon_page(void *addr, int deflate) >>>> +{ >>>> +#if defined(__linux__) >>>> + if (!kvm_enabled() || kvm_has_sync_mmu()) >>>> + madvise(addr, TARGET_PAGE_SIZE, >>>> + deflate ? MADV_WILLNEED : MADV_DONTNEED); >>>> +#endif >>>> +} >>>> >>> Hmm, I just noticed this... we need to use VIRTIO_BALLOON_PFN_SHIFT like >>> Rusty did on the kernel side. >>> >>> However, in general I'm not sure how this is supposed to work. Isn't it >>> true that madvise() is a no-op if 0 < length < getpagesize()? If so, how >>> should the guest know the chunk size needed on the host? >>> >> We need to pass multiple of TARGET_PAGE_SIZE to madvise() >> > > You mean HOST_PAGE_SIZE? > I change my previous answer :-) I think we should just pass addr and the appropriate size of the memory the guest is ballooning. Whether the host can handle it is up to it. Worst case scenario, madvise() returns an error and no harm is done. Regards, Anthony Liguori > My linux manpage says that the address must be page aligned. > > Paul >