From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46146) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXRt6-0006av-Gf for qemu-devel@nongnu.org; Thu, 03 Sep 2015 06:37:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZXRt2-0007J9-GU for qemu-devel@nongnu.org; Thu, 03 Sep 2015 06:37:00 -0400 Received: from mx-v6.kamp.de ([2a02:248:0:51::16]:35616 helo=mx01.kamp.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXRt2-0007Dr-6D for qemu-devel@nongnu.org; Thu, 03 Sep 2015 06:36:56 -0400 References: <1440670734-5616-1-git-send-email-pl@kamp.de> <1440670734-5616-3-git-send-email-pl@kamp.de> <20150827103951.GN24486@redhat.com> <1441273974.557.19.camel@redhat.com> From: Peter Lieven Message-ID: <55E822C2.2070907@kamp.de> Date: Thu, 3 Sep 2015 12:36:50 +0200 MIME-Version: 1.0 In-Reply-To: <1441273974.557.19.camel@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/4] vnc: allow the Buffer to shrink again List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann , "Daniel P. Berrange" Cc: qemu-devel@nongnu.org Am 03.09.2015 um 11:52 schrieb Gerd Hoffmann: > On Do, 2015-08-27 at 11:39 +0100, Daniel P. Berrange wrote: >> On Thu, Aug 27, 2015 at 12:18:52PM +0200, Peter Lieven wrote: >>> currently the Buffer can only grow. This increases Qemu memory footprint >>> dramatically since normally the biggest VNC updates are at connection time. >>> But also after a VNC session has terminated there is one persistent buffer >>> in queue->buffer which I have seen to increase to over 100MB and it is never >>> getting smaller again. >> Do you have any idea what caused the buffer to increase to 100MB in size >> in the first place ? I would expect a full screen update would cause the >> biggest buffer usage, and even for a 1920x1140 screen that should not >> be anywhere near 100MB in size. IOW, i'm wondering if the 100MB usage >> is symptomatic of a more serious bug somewhere else in the VNC code >> that you're just masking you reducing buffer size afterwards. > Cooked up a buffer stats patch (attached). > Buffer sizes are nowhere near 100MB for me (as expected by Daniel). > Individual buffers are in the 1 -> 4 MB range (1920x1080), even summed > up this is more like 10 not 100 MB. > > So, big question remains why they are that big for you? Simple case to create at least a reasonable allocation: -vga vmware and a client that prefers Hextile encoding. ~/git/qemu$ x86_64-softmmu/qemu-system-x86_64 -m 4096 -enable-kvm -cdrom ~/Downloads/ubuntu-14.04.3-desktop-amd64.iso -k de -usb -device usb-tablet -nodefaults -serial null -parallel null -cpu Westmere,enforce -vga vmware -monitor stdio -vnc :0 QEMU 2.4.50 monitor - type 'help' for more information (qemu) buffer_reserve: 11/out : 4 kB buffer_reserve: 11/in : 4 kB buffer_reserve: queue : 4 kB buffer_reserve: queue : 8 kB buffer_reserve: 11/jobs : 8 kB buffer_reserve: 11/out : 16 kB buffer_reserve: queue : 16 kB buffer_reserve: queue : 32 kB buffer_reserve: queue : 64 kB buffer_reserve: queue : 128 kB buffer_reserve: queue : 256 kB buffer_reserve: 11/jobs : 256 kB buffer_reserve: 11/out : 256 kB buffer_reserve: queue : 512 kB buffer_reserve: queue : 1024 kB buffer_reserve: queue : 2048 kB buffer_reserve: 11/jobs : 2048 kB buffer_reserve: 11/out : 2048 kB buffer_reserve: queue : 4096 kB buffer_reserve: queue : 8192 kB buffer_reserve: queue : 16384 kB buffer_reserve: 11/jobs : 16384 kB buffer_reserve: 11/out : 16384 kB Its not 100MB, but 50MB. Same with Tight encoding: (qemu) buffer_reserve: 11/out : 4 kB buffer_reserve: 11/in : 4 kB buffer_reserve: queue : 4 kB buffer_reserve: 11/t-tight: 4 kB buffer_reserve: 11/t-tight: 8 kB buffer_reserve: 11/t-tight: 16 kB buffer_reserve: 11/t-tight: 32 kB buffer_reserve: 11/t-tight: 64 kB buffer_reserve: 11/t-tight: 128 kB buffer_reserve: 11/t-tight: 256 kB buffer_reserve: 11/t-tight: 512 kB buffer_reserve: 11/t-zlib : 4 kB buffer_reserve: 11/jobs : 4 kB buffer_reserve: 11/t-zlib : 64 kB buffer_reserve: 11/t-tight: 1024 kB buffer_reserve: 11/t-tight: 2048 kB buffer_reserve: 11/t-tight: 4096 kB buffer_reserve: 11/t-tight: 8192 kB buffer_reserve: 11/t-tight: 16384 kB buffer_reserve: 11/t-zlib : 128 kB buffer_reserve: queue : 8 kB buffer_reserve: 11/jobs : 8 kB buffer_reserve: 11/out : 8 kB buffer_reserve: 11/t-zlib : 256 kB buffer_reserve: queue : 64 kB buffer_reserve: queue : 128 kB buffer_reserve: queue : 256 kB buffer_reserve: queue : 512 kB buffer_reserve: queue : 1024 kB buffer_reserve: queue : 2048 kB buffer_reserve: queue : 4096 kB buffer_reserve: queue : 8192 kB buffer_reserve: 11/jobs : 8192 kB buffer_reserve: 11/out : 8192 kB ~40MB. Peter