[libvirt] [PATCH v2 13/21] utils: Implement function to pass a buffer to send via a fd to virCommand

Stefan Berger stefanb at linux.ibm.com
Thu Jul 11 13:35:05 UTC 2019


On 7/11/19 7:02 AM, Stefan Berger wrote:
> On 7/10/19 4:09 PM, Marc-André Lureau wrote:
>> On Wed, Jul 10, 2019 at 10:12 PM Stefan Berger
>> <stefanb at linux.vnet.ibm.com> wrote:
>>> Implement virCommandSetSendBuffer() that allows the caller to pass a
>>> file descriptor and buffer to virCommand. virCommand will write the
>>> buffer into the file descriptor. That file descriptor could be the
>>> write end of a pipe or one of the file descriptors of a socketpair.
>>> The other file descriptor should be passed to the launched process to
>>> read the data from.
>>>
>>> Only implement the function to allocate memory for send buffers
>>> and to free them later on.
>>>
>>> Signed-off-by: Stefan Berger <stefanb at linux.ibm.com>
>> that looks fine,
>> Reviewed-by: Marc-André Lureau <marcandre.lureau at redhat.com>
>
>
> I may need to modify this patch here to set the file descriptor's 
> O_NONBLOCK flag...
>
>
The poll behavior of a pipe is that it gets POLLOUT for as long as there 
is room  left to write, so we will fill it up in more or less passes 
through the loop. I don't know how one could find out how much space 
there is left to write on a pipe so that the loop at least would quiet 
down after filling it up completely because this seems inefficient....




More information about the libvir-list mailing list