From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NB9Sx-0001j2-Ty for qemu-devel@nongnu.org; Thu, 19 Nov 2009 11:02:40 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NB9Ss-0001cq-E1 for qemu-devel@nongnu.org; Thu, 19 Nov 2009 11:02:39 -0500 Received: from [199.232.76.173] (port=45371 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NB9Ss-0001cc-6j for qemu-devel@nongnu.org; Thu, 19 Nov 2009 11:02:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:18638) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NB9Sr-0002mJ-FU for qemu-devel@nongnu.org; Thu, 19 Nov 2009 11:02:33 -0500 Message-ID: <4B056C17.1020003@redhat.com> Date: Thu, 19 Nov 2009 18:02:31 +0200 From: Avi Kivity MIME-Version: 1.0 References: <1258643169.3464.3.camel@aglitke> <4B056206.4090207@redhat.com> <1258646191.3464.16.camel@aglitke> In-Reply-To: <1258646191.3464.16.camel@aglitke> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: virtio: Report new guest memory statistics pertinent to memory ballooning (V4) List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Adam Litke Cc: Anthony Liguori , qemu-devel@nongnu.org On 11/19/2009 05:56 PM, Adam Litke wrote: > On Thu, 2009-11-19 at 17:19 +0200, Avi Kivity wrote: > >> On 11/19/2009 05:06 PM, Adam Litke wrote: >> >>> Avi and Anthony, >>> If you agree that I've addressed all outstanding issues, please consider this >>> patch for inclusion. Thanks. >>> >>> >>> >> I'd like to see this (and all other virtio-ABI-modifying patches) first >> go into the virtio pci spec, then propagated to guest and host. >> > Where can I find information on the procedure for updating the virtio > pci spec? > > Send a patch to Rusty (same copy list). http://ozlabs.org/~rusty/virtio-spec/ >>> Changes since V3: >>> - Increase stat field size to 64 bits >>> - Report all sizes in kb (not pages) >>> >>> >> Why not bytes? It's the most natural unit. >> > The precision for most of these stats (except major and minor faults) > is 4kb (at least for Linux guests on the platforms I can think of). I > chose kb units to avoid wasting bits. I suppose the 64bit fields are > "Bigger than we could ever possibly need (tm)". Others have suggested > bytes as well so I will be happy to make the change. > It's my engineering backgrounds. I'd actually prefer them in a kg/m/s combo but it doesn't really work out. >>> -static ram_addr_t virtio_balloon_to_target(void *opaque, ram_addr_t target) >>> +static void request_stats(VirtIOBalloon *vb) >>> +{ >>> + vb->stats_requested = 1; >>> + reset_stats(vb); >>> + monitor_suspend(cur_mon); >>> >>> >> You allow the guest to kill a monitor here. >> > Is there a better way to handle asynchronous communication with the > guest? > With the current monitor, the only option I can think of it a command to request stats and a command to report stats (with a version number so we can see if it actually worked). The new monitor will support async command completion but even then I don't think we should allow a guest to stop command execution indefinitely (it would tie up resources at the client). >>> +typedef struct VirtIOBalloonStat { >>> + uint16_t tag; >>> + uint64_t val; >>> +} VirtIOBalloonStat; >>> >>> >> Alignment here depends on word size. This needs to be padded to be >> aligned the same way on 32 and 64 bit hosts and guests. >> > ok. I assume that means the structure size must be a multiple of 64 > bits in size Yes, and all values must be naturally aligned. -- error compiling committee.c: too many arguments to function