From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [Qemu-devel] [RFC v4 00/58] Memory API Date: Wed, 20 Jul 2011 11:12:21 +0300 Message-ID: <4E268DE5.90201@redhat.com> References: <1310901265-32051-1-git-send-email-avi@redhat.com> <4E2581F4.5090004@codemonkey.ws> <4E25864A.10905@redhat.com> <4E2599BC.9070407@codemonkey.ws> <4E25AB37.2030808@redhat.com> <4E25AC5D.1030205@redhat.com> <4E25EE3A.8030007@codemonkey.ws> <4E264344.1080505@codemonkey.ws> <1311142251.5871.8.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Anthony Liguori , kvm@vger.kernel.org, qemu-devel@nongnu.org To: Sasha Levin Return-path: Received: from mx1.redhat.com ([209.132.183.28]:5971 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751291Ab1GTIM3 (ORCPT ); Wed, 20 Jul 2011 04:12:29 -0400 In-Reply-To: <1311142251.5871.8.camel@lappy> Sender: kvm-owner@vger.kernel.org List-ID: On 07/20/2011 09:10 AM, Sasha Levin wrote: > On Tue, 2011-07-19 at 21:53 -0500, Anthony Liguori wrote: > > QEMU does use it and it's quite important. Coalesced MMIO is really > > about write caching MMIO exits. It only works with devices that have > > registers where writing has no side effects. Moreover, it only really > > works well when there are lots and lots of writes to these registers > > simultaneously. > > > > Couple that with the fact that the buffer is a fixed size and it's > > really not flexible enough to be useful for a wide variety of devices. > > > > But for VGA planar mode writes, it works wonders. It would be terrible > > to totally lose it. That said, I'm not at all convinced it's useful for > > much other than VGA planar mode. > > Why was the coalesced approach taken in the first place? When I tried > using it for VGA in /tools/kvm it just seemed to me like a builtin > virtio-memory transport. > > Thats why I think planar VGA would be fine if we deprecate coalesced > mmio in favor of either socket ioeventfds or a new virtio-memory device. > virtio is guest visible. coealesced mmio is transparent to the guest. socket ioeventds also do coalescing, but they are more expensive to synchronize - you have to poll the socket whenever a synchronization event happens. -- error compiling committee.c: too many arguments to function