码迷,mamicode.com
首页 > 其他好文 > 详细

share memory between guest and nic

时间:2019-10-13 15:19:11      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:指南   tail   guest   macro   info   mda   实现   mit   cell   

通过硬件的IOMMU,内核提供的共享内存、VFIO可以实现。

REF:

1. offical DPDK API Doc, 简书有翻译版 DPDK编程指南(翻译)(一)  ( 二十七

2. dpdk vhost研究()/()

3. vhost-user 与其他的对比 virtio,vhost 和vhost-user

 

文件共享

Linux文件共享(六)——描述符传递

qemu 与DPDK共享内存,是通过传递fd(fd是进程独享的,同一文件,两个进程间的fd可能不同)的方式实现的。所以实现fd传输是一个很麻烦的事。 参考这个例子,怎么实现fd传递的。

技术图片

 

 

linux提供recvmsg与sendmsg来传递描述符,详见: 

linux下进程间传递描述符(recvmsg与sendmsg)详解 

进程间传递文件描述符--sendmsg,recvmsg, 传递过程有点magic, 其实是通过msghdr中的两个成员 msg_control 和 msg_controllen 辅助数据。(几个注意点

 

Share fd: When you share a file descriptor over a socket, the kernel mediates. You need to prepare data using the cmsg(3) macros, send it using sendmsg(2) and receive it using recvmsg(2). The kernel is involved in the latter two operations, and it handles the conversion from a file descriptor to whatever data it needs to transmit the file descriptor, and making the file descriptor available in the receiving process.

share memory between guest and nic

标签:指南   tail   guest   macro   info   mda   实现   mit   cell   

原文地址:https://www.cnblogs.com/shaohef/p/11666210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!