Hi Victor,
Hey, I was taking a look at rhbz#1264156 [1] which leads to a great amount of memory being used in the client when sharing webcam with usbredir when the connection is slow enough (not necessary slow but slower then the webcam data flow). Looks like there are other bugs about similar issue like rhbz#1201387 [2] with _being slow_ and high memory consumption in the client. I've also hit fdo#90286 [3] during my local tests... [1] https://bugzilla.redhat.com/show_bug.cgi?id=1264156[2] https://bugzilla.redhat.com/show_bug.cgi?id=1201387
Well, what I was planing to do in order to address the high memory consumption is the following combination:
1-) Avoid sharing devices when connection is too slow. libusb has libusb_get_device_speed function which can possibility return the operation speed of the device. By having the quality and speed of the connection we could deny connecting devices that are too fast.
2-) Limiting the queue size for usbredir the memory grows because the queue to send the data grows faster then network's read. Even with (1) we could hit issues in the long run. In this case, we could identify by the queue limit being reached. The solution should be disabling the usbredirection of the device.
This solution is the most robust one probably. 3-) Negotiate capabilities with device Not sure how much we can configure from spice-gtk to device parameters but theoretically it should be possible to change resolution and quality of the device, making less use of bandwidth.
This is an interesting idea, but will require device/class-specific code unfortunately.
It would be nice to use Bandwidth Allocation mechanisms somehow, but I can’t think of a technically acceptable way…
~Dmitry.
|
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel