Re: [Qemu-devel] Transforming stdin and stdout pair into a socket

Anthony Liguori
2009-05-12T02:24:26Z

Paul Brook wrote:
>> I've seen socat, and I could use it as you described. My only
>> objection to this solution is that there is an unneeded process in the
>> middle that just pipes data around...
>>
>> (Instead of socat, I think it would be more efficient to just write
>> a simple application that uses the "new" Linux syscall "splice" that
>> I've just found by mistake yesterday...)
>>
>
> In that case you need to fix socat to use splice() when available. I have a
> hard time believing socat adds measurable overhead, especially if you're
> already tunnelling over ssh.
>

splice() doesn't really buy you anything when copying from a socket to
another socket. The data is going to get copied just like it would if
you dropped to userspace. It's useful if you introduce pipe-to-pipe
copies because they'll be eliminated but if you're going from socket ->
pipe -> socket it'll be the same as using socat.

Regards,

Anthony Liguori
> Paul