From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33513) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXRCY-00008c-M4 for qemu-devel@nongnu.org; Thu, 03 Sep 2015 05:53:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZXRCT-00057H-K8 for qemu-devel@nongnu.org; Thu, 03 Sep 2015 05:53:02 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41524) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXRCT-000578-CS for qemu-devel@nongnu.org; Thu, 03 Sep 2015 05:52:57 -0400 Message-ID: <1441273974.557.19.camel@redhat.com> From: Gerd Hoffmann Date: Thu, 03 Sep 2015 11:52:54 +0200 In-Reply-To: <20150827103951.GN24486@redhat.com> References: <1440670734-5616-1-git-send-email-pl@kamp.de> <1440670734-5616-3-git-send-email-pl@kamp.de> <20150827103951.GN24486@redhat.com> Content-Type: multipart/mixed; boundary="=-4Uugno9MQhPeNNUpV35g" Mime-Version: 1.0 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: "Daniel P. Berrange" Cc: Peter Lieven , qemu-devel@nongnu.org --=-4Uugno9MQhPeNNUpV35g Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit 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? Beside that I think it makes sense to have the shrinking logic in buffer_reserve too so we don't have to add buffer_shrink calls all over the place. cheers, Gerd --=-4Uugno9MQhPeNNUpV35g Content-Disposition: attachment; filename="0001-debug-vnc-buffer-stats.patch" Content-Type: text/x-patch; name="0001-debug-vnc-buffer-stats.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlNWQ5MzUzZDAyOTgzZGIwMDgxZTQ0MDI2NzY3YWRmOWY1YTcyODMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4KRGF0 ZTogVGh1LCAzIFNlcCAyMDE1IDExOjQ0OjE4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gW2RlYnVn XSB2bmMgYnVmZmVyIHN0YXRzCgotLS0KIHVpL3ZuYy1qb2JzLmMgfCAgMSArCiB1aS92bmMuYyAg ICAgIHwgMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHVpL3ZuYy5o ICAgICAgfCAgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvdWkvdm5jLWpvYnMuYyBiL3VpL3ZuYy1qb2JzLmMKaW5kZXggMjJjOWFiYy4uMTMzODc3 MSAxMDA2NDQKLS0tIGEvdWkvdm5jLWpvYnMuYworKysgYi91aS92bmMtam9icy5jCkBAIC0zMDIs NiArMzAyLDcgQEAgc3RhdGljIFZuY0pvYlF1ZXVlICp2bmNfcXVldWVfaW5pdCh2b2lkKQogCiAg ICAgcWVtdV9jb25kX2luaXQoJnF1ZXVlLT5jb25kKTsKICAgICBxZW11X211dGV4X2luaXQoJnF1 ZXVlLT5tdXRleCk7CisgICAgYnVmZmVyX2luaXQoJnF1ZXVlLT5idWZmZXIsIDAsICJxdWV1ZSIp OwogICAgIFFUQUlMUV9JTklUKCZxdWV1ZS0+am9icyk7CiAgICAgcmV0dXJuIHF1ZXVlOwogfQpk aWZmIC0tZ2l0IGEvdWkvdm5jLmMgYi91aS92bmMuYwppbmRleCA3YTE3OTU0Li41OWJlNzY1IDEw MDY0NAotLS0gYS91aS92bmMuYworKysgYi91aS92bmMuYwpAQCAtNjU1LDEyICs2NTUsMjkgQEAg dm9pZCB2bmNfZnJhbWVidWZmZXJfdXBkYXRlKFZuY1N0YXRlICp2cywgaW50IHgsIGludCB5LCBp bnQgdywgaW50IGgsCiAKICNkZWZpbmUgQlVGRkVSX01JTl9JTklUX1NJWkUgNDA5NgogCit2b2lk IGJ1ZmZlcl9pbml0KEJ1ZmZlciAqYnVmZmVyLCBpbnQgZmQsIGNvbnN0IGNoYXIgKm5hbWUpCit7 CisgICAgaWYgKGZkKSB7CisgICAgICAgIGJ1ZmZlci0+bmFtZSA9IGdfc3RyZHVwX3ByaW50Zigi JWQvJXMiLCBmZCwgbmFtZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYnVmZmVyLT5uYW1lID0g Z19zdHJkdXAobmFtZSk7CisgICAgfQorfQorCiB2b2lkIGJ1ZmZlcl9yZXNlcnZlKEJ1ZmZlciAq YnVmZmVyLCBzaXplX3QgbGVuKQogeworICAgIGJvb2wgaW5jID0gZmFsc2U7CisKKyAgICBhc3Nl cnQoYnVmZmVyLT5uYW1lKTsKICAgICBpZiAoKGJ1ZmZlci0+Y2FwYWNpdHkgLSBidWZmZXItPm9m ZnNldCkgPCBsZW4pIHsKICAgICAgICAgYnVmZmVyLT5jYXBhY2l0eSA9IHBvdzJjZWlsKGJ1ZmZl ci0+Y2FwYWNpdHkgKyBsZW4pOwogICAgICAgICBidWZmZXItPmNhcGFjaXR5ID0gTUFYKGJ1ZmZl ci0+Y2FwYWNpdHksIEJVRkZFUl9NSU5fSU5JVF9TSVpFKTsKICAgICAgICAgYnVmZmVyLT5idWZm ZXIgPSBnX3JlYWxsb2MoYnVmZmVyLT5idWZmZXIsIGJ1ZmZlci0+Y2FwYWNpdHkpOworICAgICAg ICBpbmMgPSB0cnVlOworICAgIH0KKyAgICBpZiAoaW5jKSB7CisgICAgICAgIGZwcmludGYoc3Rk ZXJyLCAiJXM6ICUtMTBzOiAlNHpkIGtCXG4iLCBfX2Z1bmNfXywKKyAgICAgICAgICAgICAgICBi dWZmZXItPm5hbWUsIGJ1ZmZlci0+Y2FwYWNpdHkgLyAxMDI0KTsKICAgICB9CiB9CiAKQEAgLTY4 MSw2ICs2OTgsNyBAQCB2b2lkIGJ1ZmZlcl9yZXNldChCdWZmZXIgKmJ1ZmZlcikKIAogdm9pZCBi dWZmZXJfZnJlZShCdWZmZXIgKmJ1ZmZlcikKIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAl c1xuIiwgX19mdW5jX18sIGJ1ZmZlci0+bmFtZSk7CiAgICAgZ19mcmVlKGJ1ZmZlci0+YnVmZmVy KTsKICAgICBidWZmZXItPm9mZnNldCA9IDA7CiAgICAgYnVmZmVyLT5jYXBhY2l0eSA9IDA7CkBA IC0zMDI3LDYgKzMwNDUsMjYgQEAgc3RhdGljIHZvaWQgdm5jX2Nvbm5lY3QoVm5jRGlzcGxheSAq dmQsIGludCBjc29jaywKICAgICB2cy0+Y3NvY2sgPSBjc29jazsKICAgICB2cy0+dmQgPSB2ZDsK IAorICAgIGJ1ZmZlcl9pbml0KCZ2cy0+aW5wdXQsIHZzLT5jc29jaywgImluIik7CisgICAgYnVm ZmVyX2luaXQoJnZzLT5vdXRwdXQsIHZzLT5jc29jaywgIm91dCIpOworICAgIGJ1ZmZlcl9pbml0 KCZ2cy0+d3NfaW5wdXQsIHZzLT5jc29jaywgInctaW4iKTsKKyAgICBidWZmZXJfaW5pdCgmdnMt PndzX291dHB1dCwgdnMtPmNzb2NrLCAidy1vdXQiKTsKKyAgICBidWZmZXJfaW5pdCgmdnMtPmpv YnNfYnVmZmVyLCB2cy0+Y3NvY2ssICJqb2JzIik7CisKKyAgICBidWZmZXJfaW5pdCgmdnMtPnRp Z2h0LnRpZ2h0LCB2cy0+Y3NvY2ssICJ0LXRpZ2h0Iik7CisgICAgYnVmZmVyX2luaXQoJnZzLT50 aWdodC56bGliLCB2cy0+Y3NvY2ssICJ0LXpsaWIiKTsKKyAgICBidWZmZXJfaW5pdCgmdnMtPnRp Z2h0LmdyYWRpZW50LCB2cy0+Y3NvY2ssICJ0LWdyYWRpZW50Iik7CisjaWZkZWYgQ09ORklHX1ZO Q19KUEVHCisgICAgYnVmZmVyX2luaXQoJnZzLT50aWdodC5qcGVnLCB2cy0+Y3NvY2ssICJ0LWpw ZWciKTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19WTkNfUE5HCisgICAgYnVmZmVyX2luaXQoJnZz LT50aWdodC5wbmcsIHZzLT5jc29jaywgInQtcG5nIik7CisjZW5kaWYKKyAgICBidWZmZXJfaW5p dCgmdnMtPnpsaWIuemxpYiwgdnMtPmNzb2NrLCAiemxpYiIpOworICAgIGJ1ZmZlcl9pbml0KCZ2 cy0+enJsZS56cmxlLCB2cy0+Y3NvY2ssICJ6LXpybGUiKTsKKyAgICBidWZmZXJfaW5pdCgmdnMt PnpybGUuZmIsIHZzLT5jc29jaywgInotZmIiKTsKKyAgICBidWZmZXJfaW5pdCgmdnMtPnpybGUu emxpYiwgdnMtPmNzb2NrLCAiei16bGliIik7CisKICAgICBpZiAoc2tpcGF1dGgpIHsKIAl2cy0+ YXV0aCA9IFZOQ19BVVRIX05PTkU7CiAJdnMtPnN1YmF1dGggPSBWTkNfQVVUSF9JTlZBTElEOwpk aWZmIC0tZ2l0IGEvdWkvdm5jLmggYi91aS92bmMuaAppbmRleCA4MTRkNzIwLi45NTg3OGMzIDEw MDY0NAotLS0gYS91aS92bmMuaAorKysgYi91aS92bmMuaApAQCAtNTcsNiArNTcsNyBAQAogCiB0 eXBlZGVmIHN0cnVjdCBCdWZmZXIKIHsKKyAgICBjaGFyICpuYW1lOwogICAgIHNpemVfdCBjYXBh Y2l0eTsKICAgICBzaXplX3Qgb2Zmc2V0OwogICAgIHVpbnQ4X3QgKmJ1ZmZlcjsKQEAgLTUzOSw2 ICs1NDAsNyBAQCB2b2lkIHN0YXJ0X2NsaWVudF9pbml0KFZuY1N0YXRlICp2cyk7CiB2b2lkIHN0 YXJ0X2F1dGhfdm5jKFZuY1N0YXRlICp2cyk7CiAKIC8qIEJ1ZmZlciBtYW5hZ2VtZW50ICovCit2 b2lkIGJ1ZmZlcl9pbml0KEJ1ZmZlciAqYnVmZmVyLCBpbnQgZmQsIGNvbnN0IGNoYXIgKm5hbWUp Owogdm9pZCBidWZmZXJfcmVzZXJ2ZShCdWZmZXIgKmJ1ZmZlciwgc2l6ZV90IGxlbik7CiB2b2lk IGJ1ZmZlcl9yZXNldChCdWZmZXIgKmJ1ZmZlcik7CiB2b2lkIGJ1ZmZlcl9mcmVlKEJ1ZmZlciAq YnVmZmVyKTsKLS0gCjEuOC4zLjEKCg== --=-4Uugno9MQhPeNNUpV35g--