
linux-driver-ipc
文章平均质量分 71
IPC
kunkliu
good good study
展开
-
rpmsg 内核开发 用户层接口
地址:https://blog.youkuaiyun.com/thisway_diy/article/details/129195479。Tina Linux E907开发指南。7.2 rpmsg 用户层接口。7.1 rpmsg 内核开发。转载 2023-04-03 21:16:59 · 1207 阅读 · 0 评论 -
virtio技术(3)virtqueue机制
virtio的关键技术是virtqueue机制,其提供了一套统一的用于virito前端和后端的通信机制。Descriptor Area:用于描述数据buffer;Driver Area:驱动需要传递给设备的额外数据;Device Area:设备需要传递给驱动的额外数据。最新的virtio协议版本定义有两种virtqueue格式:Split Virtqueue和Packed Virtqueue,下面针对这两种格式,我们分别进行描述。转载 2023-03-26 18:12:37 · 804 阅读 · 0 评论 -
virtio-net 实现机制
① virtio表示虚拟化IO,用于实现设备半虚拟化,即虚拟机中运行的操作系统需要加载特殊的驱动(e.g. virtio-net)且虚拟机知道自己是虚拟机相较于基于完全模拟的全虚拟化,基于virtio的半虚拟化可以提升设备访问性能② 运行在虚拟机中的部分称为前端驱动,负责对虚拟机提供统一的接口③ 运行在宿主机中的部分称为后端驱动,负责适配不同的物理硬件设备① 传统的网络收包流程完全靠中断驱动,当网络包到达十分频繁时,就会频繁触发中断,进而影响系统的整体性能。转载 2023-03-26 18:06:31 · 1028 阅读 · 0 评论 -
virtio-net 实现机制【一】(图文并茂)
① virtio表示虚拟化IO,用于实现设备半虚拟化,即虚拟机中运行的操作系统需要加载特殊的驱动(e.g. virtio-net)且虚拟机知道自己是虚拟机相较于基于完全模拟的全虚拟化,基于virtio的半虚拟化可以提升设备访问性能② 运行在虚拟机中的部分称为前端驱动,负责对虚拟机提供统一的接口③ 运行在宿主机中的部分称为后端驱动,负责适配不同的物理硬件设备。转载 2023-03-26 18:03:17 · 898 阅读 · 0 评论 -
浅谈Linux设备虚拟化技术的演进之路
vDPA 的全称是 Virtio Data Path Acceleration,它表示一类设备:这类设备的数据面处理是严格遵循 Virtio 协议规范的,即驱动和设备会按照第三节提到的 Virtio 通信流程来进行通信,但控制路径,比如:通信流程里面提到的 ring buffer 和 deor table 的内存地址,驱动如何告知设备,设备支持的特性,驱动如何感知,这些都是厂商自定义的,不一定会遵循 Virtio 协议。在最早期阶段,设备虚拟化常常和机器模拟器技术,比如:QEMU,绑定在一起。转载 2023-03-26 17:47:21 · 390 阅读 · 0 评论 -
virtio 简介
virtio 是一种 I/O 半虚拟化解决方案,是一套通用 I/O 设备虚拟化的程序,是对半虚拟化 Hypervisor 中的一组通用 I/O 设备的抽象。提供了一套上层应用与各 Hypervisor 虚拟化设备(KVM,Xen,VMware等)之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。在完全虚拟化的解决方案中,guest VM 要使用底层 host 资源,需要 Hypervisor 来截获所有的请求指令,然后模拟出这些指令的行为,这样势必会带来很多性能上的开销。转载 2023-03-26 15:51:41 · 435 阅读 · 0 评论 -
Linux虚拟化KVM-Qemu分析(十一)之virtqueue
汪汪汪,最近忙成狗了,一下子把我更新的节奏打乱了,草率的道个歉。前边系列将Virtio Device和Virtio Driver都已经讲完,本文将分析virtqueue;virtqueue用于前后端之间的数据交换,一看到这种数据队列,首先想到的就是ring-buffer,实际的实现会是怎么样的呢?转载 2022-08-25 16:22:22 · 617 阅读 · 0 评论 -
Linux RPMsg框架--以及应用于iMX6 SoloX连接A9和M4 Core
RPMsg(Remote Processor Messaging)是一种基于virtio的消息传递总线,允许内核驱动程序与系统上可用的远程处理器进行通信。如果需要,驱动程序可以暴露适当的用户空间接口。每个RPMsg设备都是与远程处理器的通信(因此RPMsg设备称为通道)。通道由文本名称标识,并具有本地(“source”)RPMsg地址和远程(“destination”)RPMsg地址。如下图所示,消息在端点之间通过双向无连接通信通道传递。iMX6 SoloX的Core 0是,而Core 1是。转载 2022-08-25 14:49:17 · 1062 阅读 · 1 评论 -
virtio简介(二) —— virtio-balloon guest侧驱动
(1)内核会首先找到virito-pci.ko这个驱动模块,并依次加载virtio.ko,virtio-ring.ko和virtio_pci.ko (virtio_pci.ko依赖前两个模块)执行其模块初始化函数,其中,virtio.ko模块会在系统中注册一种新的总线类型virtio总线,virtio_pci的初始化函数会调用其注册的virtio_pci_probe函数;(2)virtio_pci_probe注册一个virtio设备(register_virtio_device);转载 2022-08-25 13:59:38 · 1981 阅读 · 0 评论 -
Rpmsg与Virtio介绍
源码所在路径:drivers\rpmsg\KconfigMakefile1234567891011Rpmsg的整体框架是Rpmsg Bus、Rpmsg Device与Rpmsg Driver所构成,即Linux中的Bus模型;Rpmsg Bus:由rpmsg_core.c文件所构建,负责bus的构建;Driver-device的match;device的probe与remove;uevent机制;12345678。转载 2022-08-22 22:55:51 · 1853 阅读 · 2 评论 -
linux 核间通讯rpmsg架构分析
以imx8为例在最底层硬件上,A核和M核通讯是靠硬件来进行的,称为MU,如图。转载 2022-08-22 22:34:16 · 3040 阅读 · 0 评论 -
Linux 的 I / O 虚拟化 virtio 框架详解
本文原文链接: https://developer.ibm.com/technologies/linux/articles/l-virtio/简而言之,virtio是半虚拟化管理程序中设备上的抽象层。virtio由Rusty Russell开发以支持他自己的虚拟化解决方案lguest。本文从准虚拟化和仿真设备的介绍开始,然后探讨的细节virtio。重点是virtio2.6.30内核发行版中的框架。 Linux是虚拟机管理程序平台。正如我在有关Linux作为虚拟机管理程序的文章中所展示的那样,Linux提供了转载 2022-08-22 13:46:09 · 1418 阅读 · 0 评论 -
RPMsg:协议简介
对于非通用的操作系统,它上面很可能是没有搭载传统的TCP/IP协议栈的,因此,当主核想要通过RPC的方式调用从核上的服务的时候,便不能使用一般的RPC框架所采用的网络通信方式。为了最大限度的发挥他们的性能,协同完成某一任务,不同的核心上面运行的系统可能各不相同,有些核心上面运行的通用系统例如Linux、Android等,另外一些核心上可能运行的就是实时操作系统(RTOS)等。可能在不久的将来,RPMsg可以从一个事实上的标准变成一个真正的标准,毕竟,TCP/IP 也是这么过来的嘛。转载 2022-08-22 10:08:22 · 1103 阅读 · 0 评论 -
linux rpmsg 命令,Linux RPMsg framework
更多关于这个框架的细节,请参考下面的链接:rpmsg: 一种基于virti的消息总线,允许内核驱动程序与系统上可用的远程处理器通信。当远端处理器使用“新服务声明”RPMsg消息请求相关联服务时,RPMsg框架将探测此驱动程序。当客户端驱动程序使用本地地址创建endpoint时,所有具有与endpoint本地地址相同的目标地址的入站消息都将被路由到该endpoint。vrings不是单向的,一个vring专用于发送到远程处理器的消息,另一个vring用于从远程处理器接收的消息。OpenAMP wiki文档。转载 2022-08-22 09:53:07 · 1370 阅读 · 0 评论