From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=57270 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OPaBH-00030I-5j for qemu-devel@nongnu.org; Fri, 18 Jun 2010 07:56:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OPaBF-0000pm-Oz for qemu-devel@nongnu.org; Fri, 18 Jun 2010 07:56:18 -0400 Received: from smtp.citrix.com ([66.165.176.89]:60534) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OPaBF-0000pA-Kw for qemu-devel@nongnu.org; Fri, 18 Jun 2010 07:56:17 -0400 Message-ID: <4C1B5FD9.10201@citrix.com> Date: Fri, 18 Jun 2010 13:00:25 +0100 From: Julian Pidancet MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 5/5] linux fbdev display driver. References: <1276596347-9410-1-git-send-email-kraxel@redhat.com> <1276596347-9410-6-git-send-email-kraxel@redhat.com> <4C18FA58.5080808@citrix.com> <4C19FC5D.9070003@redhat.com> <4C1A3139.5020905@citrix.com> <4C1A4C63.6040907@citrix.com> <4C1B2102.9000104@redhat.com> In-Reply-To: <4C1B2102.9000104@redhat.com> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: "qemu-devel@nongnu.org" , Stefano Stabellini On 06/18/2010 08:32 AM, Gerd Hoffmann wrote: > Hi, > >> For some reason, the display is extremely slow when using vnc and >> fbdev at the same time. > > Gotcha. Didn't notice, but it probably depends on the hardware. Very > likely the reason is that graphic cards usually are optimized for write > access and reads might be slow as hell. vnc must read though. > Access to the framebuffer are cached Write-Combining by default with fbdev, which is probably causing this latency. One solution would be to disable the display allocator when vnc is present, and let it read from a software surface instead of reading from the framebuffer (like in your initial patch). It would probably decrease display performance, but not as much as it is now if we let the vnc driver read from the hardware framebuffer. We can easily implement a surface usage counter in the display allocator code, so the fbdev driver can know whether or not the surface is read by other drivers at the same time. -- Julian Pidancet