From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40025) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXT3z-0008I8-7h for qemu-devel@nongnu.org; Thu, 03 Sep 2015 07:52:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZXT3v-0001m5-2o for qemu-devel@nongnu.org; Thu, 03 Sep 2015 07:52:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34223) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXT3u-0001lz-Qg for qemu-devel@nongnu.org; Thu, 03 Sep 2015 07:52:14 -0400 Message-ID: <1441281131.557.56.camel@redhat.com> From: Gerd Hoffmann Date: Thu, 03 Sep 2015 13:52:11 +0200 In-Reply-To: <55E81BED.1080701@kamp.de> 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> <55E81BED.1080701@kamp.de> Content-Type: multipart/mixed; boundary="=-sMCV/x5b3zOZWr/56oCE" 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: Peter Lieven Cc: qemu-devel@nongnu.org --=-sMCV/x5b3zOZWr/56oCE Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi, > > 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. > > We need a possibility to shrink the buffer after it has been used. > Especially the queue->buffer. That works fine. Test patch attached. I'm not sure this is the way to go though. I see alot of growing and shrinking. We also do alot of coping (each realloc, but also from buffer to buffer). We might be better off redoing the whole buffer management, at least once we are done with encoding one frame. Passing on a *pointer* to the buffer, once sent to the wire just free the buffer. Allocate a new one for the next frame. That way we copy around less data and also don't have to worry about big unused buffers in the first place ... cheers, Gerd --=-sMCV/x5b3zOZWr/56oCE Content-Disposition: attachment; filename="0001-test-buffer-shrink-in-buffer_reserve.patch" Content-Type: text/x-patch; name="0001-test-buffer-shrink-in-buffer_reserve.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjYWE2YzNiNzg1OTUzNDNjNjUxYmY0ZGI5NmRjMjVkYjBiMTYzNDg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4KRGF0 ZTogVGh1LCAzIFNlcCAyMDE1IDEzOjQxOjM5ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gW3Rlc3Rd IGJ1ZmZlciBzaHJpbmsgaW4gYnVmZmVyX3Jlc2VydmUKCi0tLQogdWkvdm5jLmMgfCAxNSArKysr KysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3VpL3ZuYy5jIGIvdWkvdm5jLmMKaW5kZXggYWE2YjBhNS4uNzI4 Y2JiZSAxMDA2NDQKLS0tIGEvdWkvdm5jLmMKKysrIGIvdWkvdm5jLmMKQEAgLTY2Nyw2ICs2Njcs NyBAQCB2b2lkIGJ1ZmZlcl9pbml0KEJ1ZmZlciAqYnVmZmVyLCBpbnQgZmQsIGNvbnN0IGNoYXIg Km5hbWUpCiB2b2lkIGJ1ZmZlcl9yZXNlcnZlKEJ1ZmZlciAqYnVmZmVyLCBzaXplX3QgbGVuKQog ewogICAgIGJvb2wgaW5jID0gZmFsc2U7CisgICAgYm9vbCBkZWMgPSBmYWxzZTsKIAogICAgIGFz c2VydChidWZmZXItPm5hbWUpOwogICAgIGlmICgoYnVmZmVyLT5jYXBhY2l0eSAtIGJ1ZmZlci0+ b2Zmc2V0KSA8IGxlbikgewpAQCAtNjc1LDkgKzY3NiwxNyBAQCB2b2lkIGJ1ZmZlcl9yZXNlcnZl KEJ1ZmZlciAqYnVmZmVyLCBzaXplX3QgbGVuKQogICAgICAgICBidWZmZXItPmJ1ZmZlciA9IGdf cmVhbGxvYyhidWZmZXItPmJ1ZmZlciwgYnVmZmVyLT5jYXBhY2l0eSk7CiAgICAgICAgIGluYyA9 IHRydWU7CiAgICAgfQotICAgIGlmIChpbmMpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIl czogJS0xMHM6ICU0emQga0JcbiIsIF9fZnVuY19fLAotICAgICAgICAgICAgICAgIGJ1ZmZlci0+ bmFtZSwgYnVmZmVyLT5jYXBhY2l0eSAvIDEwMjQpOworICAgIGlmICgoKGJ1ZmZlci0+b2Zmc2V0 ICsgbGVuKSA8IGJ1ZmZlci0+Y2FwYWNpdHkgPj4gNCkgJiYKKyAgICAgICAgKGJ1ZmZlci0+Y2Fw YWNpdHkgPiA2NCAqIDEwMjQpKSB7CisgICAgICAgIGJ1ZmZlci0+Y2FwYWNpdHkgPj49IDE7Cisg ICAgICAgIGJ1ZmZlci0+Y2FwYWNpdHkgPSBNQVgoYnVmZmVyLT5jYXBhY2l0eSwgNjQgKiAxMDI0 KTsKKyAgICAgICAgYnVmZmVyLT5idWZmZXIgPSBnX3JlYWxsb2MoYnVmZmVyLT5idWZmZXIsIGJ1 ZmZlci0+Y2FwYWNpdHkpOworICAgICAgICBkZWMgPSB0cnVlOworICAgIH0KKyAgICBpZiAoaW5j IHx8IGRlYykgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAlLTEwczogJTR6ZCBrQiAl c1xuIiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgYnVmZmVyLT5uYW1lLCBidWZmZXItPmNh cGFjaXR5IC8gMTAyNCwKKyAgICAgICAgICAgICAgICBpbmMgPyAiKyIgOiAiLSIpOwogICAgIH0K IH0KIAotLSAKMS44LjMuMQoK --=-sMCV/x5b3zOZWr/56oCE--