On 2019/2/11 下午9:40, Anton Kuchin wrote:
As far as I can see currently IOThread offloading is used only for
block devices and all others are emulated by main thread.
I expect that network devices can also benefit from processing in
separate thread but I couldn't find any recent work in this direction.
I'm going to implement a PoC but I want to ask if you know any
previous attempts and do you know why it can be a total waste of time.
Are there fundamental obstacles that prevent network emulation
handling in IOThread?
I think there're no obstacles.
The only question is whether or not you need to support legacy
networking backends. If the answer is yes, you need to convert them not
to assume context of Main Loop. But I don't think it's worth to support
them. We should focus on high speed solution like linking dpdk.
Another issue is the virtio implementation. Dpdk has virtio library
which is pretty optimized, we should consider to use it. But last time I
check the code, it was tightly coupled with AF_UNIX transport of
vhost-user. We may want to decouple it out of dpdk. Of course we can do
it our own as well. (Yes I know there's a vhost-user implementation, but
it was not optimized for performance).
I do have some prototype that is based on vhost-scsi-dataplane with a
TAP backend. I can send it to you if you wish.
Thanks