qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Question on unixsocket-based chardevs and vhost-user


From: Felipe Franciosi
Subject: Re: [Qemu-devel] Question on unixsocket-based chardevs and vhost-user
Date: Wed, 28 Sep 2016 17:30:24 +0000

> On 28 Sep 2016, at 18:03, Felipe Franciosi <address@hidden> wrote:
> 
> Hi Paolo,
> 
>> On 28 Sep 2016, at 17:59, Paolo Bonzini <address@hidden> wrote:
>> 
>> On 28/09/2016 18:56, Felipe Franciosi wrote:
>>> Hi Daniel/Paolo,
>>> 
>>> 
>>> 
>>> I have a question regarding this commit:
>>> 
>>> -------------8<-------------
>>> Author:     Daniel P. Berrange <address@hidden>
>>> AuthorDate: Tue Jan 19 11:14:29 2016 +0000
>>> Commit:     Paolo Bonzini <address@hidden>
>>> CommitDate: Tue Jan 26 15:58:11 2016 +0100
>>> -------------8<-------------
>>> 
>>> One of the hunks replace unix_send_msgfds() with io_channel_send_full():
>>> 
>>> According to the code (qemu-char.c:968), io_channel_send_full() is just
>>> ignoring the s->write_msgfds parameter.
>> 
>> Hmm, no, it's passing it down:
>> 
>>       ret = qio_channel_writev_full(
>>           ioc, &iov, 1,
>>           fds, nfds, NULL);
>> 
>> See the implementation of qio_channel_socket_writev in io/channel-socket.c.
> 
> Ah, so my socket has been plumbed with qio_channel_file_writev() for some 
> reason. That's definitely ignoring the fds. I'll look into why it's not 
> qio_channel_socket_writev().

Got to the bottom of it. So I was basing myself on this example:
http://git.qemu.org/?p=qemu.git;a=blob;f=qemu-char.c;h=fb456cec345b10b12a051d44067cce29cb1bdf44;hb=HEAD#l1117

It says "open a character device to a unix fd" and then uses the QIO File API. 
Worth checking if that's correct.

Thanks,
Felipe

> 
> Thanks!
> Felipe
> 
>> 
>> Thanks,
>> 
>> Paolo
>> 
>>> So my question is: when using a chardev implemented by unix sockets, how
>>> does one pass file descriptors for vhost-user applications?
>>> 
>>> I’m actually searching qemu-char.c for “write_msgfds” and scratching my
>>> head. There are functions to set it, clear it, etc, but none to send it.
> 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]