spice/server
Frediano Ziglio 540f70351d spicevmc: Do not use RedCharDevice pipe items handling
As we don't use any token there's no reason to not queue directly instead
of passing through RedCharDevice.
This will make easier to limit the queue which currently is unlimited.

RedCharDevice flow control has some problems:
- it's really designed with VDI in mind. This for SpiceVMC would cause
  code implementation to be confusing having to satisfy the agent token
  handling;
- it's using items as unit not allowing counting bytes;
- it duplicates some queue management between RedChannelClient;
- it's broken (see comments in char-device.h);
- it forces "clients" to behave in some way not altering for instance the
  queued items (which is very useful if items can be collapsed together);
- it replicates the token handling on the device queue too. This could
  seems right but is not that if you have a network card going @ 1 GBit/s
  you are able to upload more than 1 Gbit/s just using multiple
  connections. The kernel will use a single queue for the network interface
  limiting and sharing de facto the various buffers between the multiple
  connections.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2019-09-24 13:12:52 +01:00
..
tests test-loop: increment a variable outside of spice_assert 2019-08-22 21:27:35 +01:00
.gitignore gitignore: Reuse top-level gitignore 2016-12-14 19:09:21 +00:00
agent-msg-filter.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
agent-msg-filter.h agent-msg-filter: Add some comments to AgentMsgFilter structure 2019-02-11 15:15:59 +00:00
cache-item.h Unify header guards 2017-03-30 18:17:20 +01:00
cache-item.tmpl.c cache-item: Remove unused define 2019-06-21 08:30:56 +01:00
char-device.c char-device: Don't use RedClient API 2019-09-17 12:17:26 +01:00
char-device.h char-device: Don't use RedClient API 2019-09-17 12:17:26 +01:00
common-graphics-channel.c common-graphics-channel: Avoid closing server if client send huge messages 2019-06-10 13:44:01 +01:00
common-graphics-channel.h common-graphics-channel: Move "qxl" property to DisplayChannel 2017-09-07 06:42:01 +01:00
cursor-channel-client.c cache-item: Remove only written fields 2019-06-21 08:30:56 +01:00
cursor-channel-client.h Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
cursor-channel.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
cursor-channel.h Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
dcc-private.h cache-item: Remove only written fields 2019-06-21 08:30:56 +01:00
dcc-send.c dcc-send: fix use-after-free 2019-07-11 09:37:34 +01:00
dcc.c stream-channel: Add preferred video codec capability 2019-09-02 09:53:27 +01:00
dcc.h Use "base" as pipe item base field name 2018-06-18 13:40:51 +01:00
dispatcher.c dispatcher: Use a new API to handle events 2019-08-02 11:16:57 +01:00
dispatcher.h dispatcher: Use a new API to handle events 2019-08-02 11:16:57 +01:00
display-channel-private.h Move image_compression field from RedWorker to DisplayChannel 2019-03-28 20:20:25 +00:00
display-channel.c streaming: Restart streams on video-codec changes 2019-07-11 09:28:51 +01:00
display-channel.h Move image_compression field from RedWorker to DisplayChannel 2019-03-28 20:20:25 +00:00
display-limits.h Receive the GraphicsDeviceInfo message from the streaming agent 2019-01-29 15:46:54 +01:00
event-loop.c event loop: improve implementation of watches for Unix systems 2019-07-24 11:19:38 +01:00
glib-compat.h Use verify instead of G_STATIC_ASSERT 2017-12-01 22:49:46 +00:00
glz-encode-match.tmpl.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
glz-encode.tmpl.c glz-encode: Remove obsolete reference segment 2019-08-12 10:48:02 +01:00
glz-encoder-dict.c typo: fix the spelling of precede 2019-07-04 10:05:19 +01:00
glz-encoder-dict.h Make various functions static 2017-04-05 12:39:20 +02:00
glz-encoder-priv.h glz-encoder-dict: Remove useless __packed__ attribute 2019-08-02 10:55:20 +01:00
glz-encoder.c glz-encoder: Remove useless __packed__ attribute 2019-08-02 10:55:27 +01:00
glz-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00
gstreamer-encoder.c gst:mjpeg do not set max-threads 2019-07-17 11:21:55 +01:00
image-cache.c Use SPICE_CONTAINEROF to avoid some possible alignment warnings on MIPS 2019-06-18 09:48:28 +01:00
image-cache.h Unify header guards 2017-03-30 18:17:20 +01:00
image-encoders.c typo: image-encoders: fix the spelling of guaranteed 2019-07-04 10:05:16 +01:00
image-encoders.h Add possibly missing headers for pthread.h 2018-06-26 10:54:01 +01:00
inputs-channel-client.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
inputs-channel-client.h inputs-channel-client: Remove unused declarations 2019-06-13 07:44:10 +01:00
inputs-channel.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
inputs-channel.h inputs-channel: Move spice_server_kbd_leds to InputsChannel 2017-12-19 16:29:41 +00:00
jpeg-encoder.c jpeg: Support big endian machines 2019-06-19 10:36:10 +01:00
jpeg-encoder.h jpeg-encoder: Remove JPEG_IMAGE_TYPE_RGB24 2018-06-26 18:06:50 +01:00
lz4-encoder.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
lz4-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00
main-channel-client.c main-channel-client: style fixup, indentation of return 2019-09-24 09:46:13 +02:00
main-channel-client.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
main-channel.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
main-channel.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
main-dispatcher.c dispatcher: Use a new API to handle events 2019-08-02 11:16:57 +01:00
main-dispatcher.h Remove core parameter from main_dispatcher_new 2019-02-12 22:34:52 +00:00
Makefile.am Add support for clients connecting with the WebSocket protocol. 2019-06-26 14:18:27 +01:00
memslot.c Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
memslot.h Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
meson.build Add support for clients connecting with the WebSocket protocol. 2019-06-26 14:18:27 +01:00
migration-protocol.h Use start/end-packet.h headers instead of direct GCC attribute 2019-07-22 14:56:00 +01:00
mjpeg-encoder.c jpeg: Support big endian machines 2019-06-19 10:36:10 +01:00
net-utils.c net-utils: Port to Windows 2019-05-07 10:14:08 +01:00
net-utils.h reds-stream: Introduce reds_stream_get_no_delay() helper 2017-03-31 12:22:52 +02:00
pixmap-cache.c Use SPICE_CONTAINEROF to avoid some possible alignment warnings on MIPS 2019-06-18 09:48:28 +01:00
pixmap-cache.h Unify header guards 2017-03-30 18:17:20 +01:00
red-channel-capabilities.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
red-channel-capabilities.h Unify header guards 2017-03-30 18:17:20 +01:00
red-channel-client.c red-channel-client: Inline red_channel_client_get_channel in macro 2019-09-17 09:40:29 +01:00
red-channel-client.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
red-channel.c red-channel: Inline red_channel_pipes_create_batch 2019-08-02 11:11:05 +01:00
red-channel.h red-channel: Remove unused declaration 2019-06-13 07:44:10 +01:00
red-client.c Remove compile warnings on Linux 32bit system 2019-06-13 09:04:01 +01:00
red-client.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
red-common.h red-common: Add a comment for GLIST_FOREACH_GENERIC 2019-07-09 11:10:27 +01:00
red-parse-qxl.c Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
red-parse-qxl.h qxl: Release QXL resources in red_put_surface_cmd 2018-12-06 13:04:03 +00:00
red-pipe-item.c red-pipe-item: Use GLib memory functions 2017-10-11 12:52:17 +01:00
red-pipe-item.h red-pipe-item: Removed some not necessary headers inclusions 2019-02-23 05:12:59 +00:00
red-qxl.c red-qxl: Make sure we have at least one monitor 2019-09-19 14:54:53 +01:00
red-qxl.h red-qxl: Better encapsulation of device display information 2019-07-08 13:19:12 +01:00
red-record-qxl.c Disable recording filtering for Windows 2019-05-07 10:14:33 +01:00
red-record-qxl.h red-record-qxl: Change license header to LGPLv2+ 2018-07-05 10:15:17 +02:00
red-replay-qxl.c red-replay-qxl: Fix replay on 32 bit systems 2019-08-11 10:18:11 +01:00
red-stream-device.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
red-stream-device.h red-stream-device: Constify stream_device_get_device_display_info result 2019-02-04 19:44:12 +00:00
red-stream.c websocket: Handle text data 2019-06-26 14:19:10 +01:00
red-stream.h Add support for clients connecting with the WebSocket protocol. 2019-06-26 14:18:27 +01:00
red-worker.c dispatcher: Use a new API to handle events 2019-08-02 11:16:57 +01:00
red-worker.h red-worker: Remove unused definitions 2019-03-29 15:18:49 +00:00
reds-private.h Send the graphics device info to the vd_agent 2019-01-29 15:46:28 +01:00
reds.c reds: Inline reds_mig_switch function 2019-09-17 09:40:24 +01:00
reds.h reds: Add ability to query the video-codecs currently enabled 2019-07-05 11:11:57 +01:00
smartcard-channel-client.c smartcard: Use RedChannelClient as the type for RedCharDevice client 2019-09-17 12:17:31 +01:00
smartcard-channel-client.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
smartcard.c smartcard: Use RedChannelClient as the type for RedCharDevice client 2019-09-17 12:17:31 +01:00
smartcard.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
sound.c windows: Disable code not working on Windows 2019-05-07 10:14:22 +01:00
sound.h Change playback_compression to bool type 2017-04-07 15:08:43 -05:00
spice-audio.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-bitmap-utils.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
spice-bitmap-utils.h Use verify instead of G_STATIC_ASSERT 2017-12-01 22:49:46 +00:00
spice-bitmap-utils.tmpl.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
spice-char.h spice-char: Add some documentation to SpiceCharDeviceInterface 2019-07-10 09:53:58 +01:00
spice-core.h windows: Do not include headers not available on Windows 2019-01-31 10:48:34 +00:00
spice-input.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-migration.h server: Use SPICE_GNUC_DEPRECATED to avoid a dependency on glib.h 2016-08-12 09:47:40 +01:00
spice-qxl.h Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
spice-replay.h Unify header guards 2017-03-30 18:17:20 +01:00
spice-server-enums.c.tmpl Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
spice-server-enums.h.tmpl build: Rename spice-server-enums.tmpl.[ch] to spice-server-enums.[ch].tmpl 2018-03-07 10:04:04 -03:00
spice-server.h reds: Add ability to query the video-codecs currently enabled 2019-07-05 11:11:57 +01:00
spice-server.syms Remove reference to removed ABI 2019-08-15 11:16:42 +01:00
spice-version.h.in build-sys: generate spice-version.h 2014-11-27 14:27:33 +01:00
spice.h Make red-replay-qxl.h a public header 2016-11-10 06:37:15 +00:00
spicevmc.c spicevmc: Do not use RedCharDevice pipe items handling 2019-09-24 13:12:52 +01:00
stat-file.c stat-file: Use proper macro for container computation 2019-08-22 08:53:23 +01:00
stat-file.h Unify header guards 2017-03-30 18:17:20 +01:00
stat.h Unify header guards 2017-03-30 18:17:20 +01:00
stream-channel.c stream-channel: Add preferred video codec capability 2019-09-02 09:53:27 +01:00
stream-channel.h Make stream-channel.h self-contained 2017-10-30 12:01:24 +01:00
sw-canvas.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
sys-socket.c sys-socket: Add socket_newpair utility 2019-05-07 10:14:05 +01:00
sys-socket.h sys-socket: Add socket_newpair utility 2019-05-07 10:14:05 +01:00
tree.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
tree.h Unify header guards 2017-03-30 18:17:20 +01:00
utils.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
utils.h gstreamer-encoder: fix compiler warning with Fedora 30 2019-07-03 14:24:25 +01:00
video-encoder.h reds: Add ability to query the video-codecs currently enabled 2019-07-05 11:11:57 +01:00
video-stream.c stream-channel: Add preferred video codec capability 2019-09-02 09:53:27 +01:00
video-stream.h stream-channel: Add preferred video codec capability 2019-09-02 09:53:27 +01:00
websocket.c websocket: Handle continuation and 0-size frames 2019-06-26 14:19:13 +01:00
websocket.h websocket: Include proper type header 2019-07-17 12:53:11 +01:00
zlib-encoder.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
zlib-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00