- 28 6月, 2017 1 次提交
-
-
由 Martin Kletzander 提交于
When one has a non-blocking stream and aborts or finishes it without removing the callback, any event loop invocation will trigger that callback, but it cannot be removed any more. We cannot remove the callback automatically from virStream{Abort,Finish} functions due to forward-compatibility. So let's at least document this behaviour, because it is not easy to find out the reason for. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
- 22 5月, 2017 1 次提交
-
-
由 Michal Privoznik 提交于
There's a slight problem with the current function. Assume we are currently in a data section and we have say 42 bytes until next section. Therefore, just before (handler) is called to fill up the buffer with data, @want is changed to 42 to match the amount of data left in the current section. However, after hole is processed, we are back in data section but with incredibly small @want size. Nobody will ever reset it back. This results in incredible data fragmentation. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 18 5月, 2017 7 次提交
-
-
由 Michal Privoznik 提交于
This is just an internal API, that calls corresponding function in stream driver. This function will set @data = 1 if the underlying file is in data section, or @data = 0 if it is in a hole. At any rate, @length is set to number of bytes remaining in the section the file currently is. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
This is just a wrapper over new function that have been just introduced: virStreamSendHole() . It's very similar to virStreamSendAll() except it handles sparse streams well. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
This is just a wrapper over new functions that have been just introduced: virStreamRecvFlags(), virStreamRecvHole(). It's very similar to virStreamRecvAll() except it handles sparse streams well. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
Add a new flag to virStreamRecvFlags in order to handle being able to stop reading from the stream so that the consumer can generate a "hole" in stream target. Generation of a hole replaces the need to receive and handle a sequence of zero bytes for sparse stream targets. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
This function is basically a counterpart for virStreamSendHole(). If one side of a stream called virStreamSendHole() the other should call virStreamRecvHole() to get the size of the hole. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
This API is used to tell the other side of the stream to skip some bytes in the stream. This can be used to create a sparse file on the receiving side of a stream. It takes @length argument, which says how big the hole is. This skipping is done from the current point of stream. Since our streams are not rewindable like regular files, we don't need @whence argument like seek(2) has. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
This patch is adding the virStreamRecvFlags as a variant to the virStreamRecv function in order to allow for future expansion of functionality for processing sparse streams using a @flags argument. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 02 5月, 2016 1 次提交
-
-
由 Michal Privoznik 提交于
These are wrappers over virStreamRecv and virStreamSend so that users have to care about nothing but writing data into / reading data from a sink (typically a file). Note, that these wrappers are used exclusively on client side as the daemon has slightly different approach. Anyway, the wrappers allocate this buffer and use it for intermediate data storage until the data is passed to stream to send, or to the client application. So far, we are using 64KB buffer. This is enough, but suboptimal because server can send messages up to VIR_NET_MESSAGE_LEGACY_PAYLOAD_MAX bytes big (262120B, roughly 256KB). So if we make the buffer this big, a single message containing the data is sent instead of four, which is current situation. This means lower overhead, because each message contains a header which needs to be processed, each message is processed roughly same amount of time regardless of its size, less bytes need to be sent through the wire, and so on. Note that since server will never sent us a stream message bigger than VIR_NET_MESSAGE_LEGACY_PAYLOAD_MAX there's no point in sizing up the client buffer past this threshold. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 24 10月, 2014 1 次提交
-
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-stream.c file to hold all the methods related to the virStream type.
-