自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

六六哥的博客

Linux内核,虚拟化,云计算

  • 博客(319)
  • 资源 (10)
  • 收藏
  • 关注

原创 BA-VCP-DEBUG.txt

################################################################################HOST 安装必要包################################################################################yum -y install fuse fuse-develyum -y install kernel-modules-extravim /etc/grub2.c

2020-12-21 10:10:45 186

原创 BA-PKT-GEN.txt

################################################################################# HOST 配置#################################################################################vim /etc/grub2.cfg#>>>>>>>>>>>>>>>&.

2020-10-08 15:33:06 244

原创 BA-TESTPMD.txt

################################################################################# Test PMD################################################################################# 编译DPDKgit clone [email protected]:DPDK/dpdk.gitcd dpdkgit checkout v19.11 -b v1.

2020-10-08 15:32:32 280

原创 BA-OVS-DPDK-VM.txt

################################################################################# OVS DPDK VM 安装#################################################################################vim ~/.bash_profile#>>>>>>>>>>>>>&.

2020-10-08 15:32:00 196

原创 BA_vhost-vswitch.txt

################################################################################# HOST 安装必要包################################################################################yum -y install fuse fuse-develyum -y install kernel-modules-extravim /etc/gr..

2020-10-08 15:31:15 198

原创 setup_vm.sh

!/bin/sh/home/liufeng/tools/bin/qemu-system-x86_64 -machine accel=kvm -hda ./test.img -m 2048 -cdrom ./RHEL6.3-20120613.2-Server-x86_64-DVD1.iso -boot d -vnc 10.238.153.194:0 -monitor telnet:10.238.153.194:6666,server,nowaitmodprobe tuntunctl -t tap1

2020-09-24 20:58:44 200

原创 OVS-DPDK-VHOSTUSER CLINET-VM 环境搭建

################################################################################# OVS DPDK VM 安装################################################################################vim ~/.bash_profile>>>>>>>>>>>>>&gt.

2020-09-24 20:57:08 576

原创 OVS-DPDK环境搭建

################################################################################# OVS DPDK 安装################################################################################vim .bash_profile>>>>>>>>>>>>>>>.

2020-09-24 20:56:04 973 1

原创 QEMU-KVM中关键的入口代码以及意义(不断更新中)

kvm_arch_vcpu_ioctl_run:运行虚拟机kvm_queue_exception: 向VM中注入EXCEPTION

2015-10-08 17:27:03 1512

原创 声明 & 推荐博客[置顶]

因网易私加广告,搬家至CSDN,但有些博客图片未搬迁成功,如有需要请参考原博客原博客为网易博客,地址为 blog.163.com/eric_liufeng.

2015-09-28 09:57:41 1575 1

转载 Mac ssh 配置服务器和免密登陆

Mac ssh 基础配置

2022-09-18 22:45:08 1597 1

转载 Linux窗口管理利器Tmux

tmux 基础使用

2022-09-18 22:20:17 931

原创 TMUX终端复用工具小解

TMUX 简单操作

2022-09-16 08:03:49 844

原创 使用ftrace快速追踪virtio_pci_legacy_probe问题

进入目录pushd /sys/kernel/debug/tracing/设定要跟踪的函数echo virtio_pci_legacy_probe > set_graph_function查看由哪些tracer可以使用cat available_tracers打开要用的traceecho function_graph > current_tracer跟踪输入内容cat trace_pipe...

2022-04-08 19:04:31 253

原创 解决莫名其妙的git冲突

今天发现git提交有冲突冲突莫名其妙,因为没有别人修改netdev的文件解决这种冲突,总共需要四步:1. 需要先讲patch保存出来 :git diff > abc.patch2. 将patch的内容去掉:patch -Rp2 < abc.patch p2 是因为 git 从dpu-soc的目录上开始算起,到当前目录是p23. git pull 到最新4. 打回patch:patch -p2 < abc.patch...

2022-04-06 19:37:11 373

原创 WLAN控制器 – 系统总体架构

WLAN控制器 – 系统总体架构1.背景与需求1.1传统路由器架构简介 1.1.1路由器软件架构路由器从软件逻辑结构上来讲,分为控制面和数据面,如下图所示: 图 1 路由器逻辑架构l 控制面:完成路由协议计算,路由优选等工作,形成最优路由下发给数据面。控制面注重协议兼容的完整性和系统一些RA

2021-12-15 16:07:04 1957

原创 WLAN控制器 - CAPWAP协议简介

WLAN控制器 - CAPWAP协议简介1.背景介绍传统的WLAN网络都是为家庭内少量移动用户的接入而组建的。因此,只需要一个无线路由器(AP)就可以搞定了,无线路由器承担了所有的网络配置和转发的作用,功能丰富,这种无线路由器成为胖AP,例如现在家用的无线路由器就是胖AP。胖 AP将WLAN的物理层、用户数据加密、用户认证、QoS、网络管理、漫游技术以及其他应用层的功能集于一身,功能

2021-12-15 16:06:47 11583 1

原创 WLAN控制器 – CVMX报文硬件加速原理

WLAN控制器 – CVMX报文硬件加速原理1.背景简介为了适应路由流表的灵活性,AC设备使用软件来对报文进行转发处理。从AC-AP的业务架构知道,AC是整个企业WLAN的报文转发的集中点,其转发速率至关重要,纯软件是无法达到足够的转发速率的,会成为整个WLAN的速率瓶颈所在。为了解决上述问题,采用硬件来对报文处理进行加速。目前采用Cavium的OCTEON处理器,这种处理器是

2021-12-15 16:06:32 1582

原创 用crash在线调试内核(1)

crash linux-5.4.0/vmlinux /proc/kcore struct vring_virtqueue ffff987036195740struct vring_used 0xffff987027091000crash linux-5.4.0/vmlinux /proc/kcorestruct vring_virtqueue ffff987036194d80struct vring_avail 0xffff987027280000struct vring_used 0...

2021-12-14 21:11:47 653

原创 linux 设备管理模型

一、概念 二、三者的关系 三、如何注册驱动、添加设备一、概念1、bus总线是处理器和设备之间的通道。总线有多种类型,每种总线可以挂载多个设备。2、driver驱动程序是在CPU运行时,提供操作的软件接口。所有的设备必须有与之配套驱动程序才能正常工作。一个驱动程序可以驱动多个类似或者完全不同的设备。3、device设备就是连接在总线上的物理实体。设备是有功能之分的。具有相同功能的设备被归到一个类,如输入设备(鼠标,键盘,游戏杆等)。二、三者的关系总线上有两个重要的链表:

2021-12-14 13:42:59 267

原创 关于DPU设备DP的透传分析

问题目前虚机场景下,关于设备适配到虚拟机有两种思路,一种是通过VFIO透传,一种是通过kernel VDPA进行适配,无论使用哪种,最终都要把数据平面直接透给VM,以便进行高效的数据传输。其实透传这是针对控制面而言,数据面只是设置对应的地址即可VDPA的模式控制面上,厂商的HOST驱动控制面 HDRV-CP 适配到VDPA框架,通过VDPA转换给vhost设备,QEMU使用VHOST模拟virito设备给虚拟机VM,virito 前端驱动控制面 virito FE-CP即可通过virito标

2021-12-06 15:58:19 1067

原创 关于dma_alloc_coherent的用法

目录概述DMA映射建立一致性DMA映射DMA池建立流式DMA映射单页流式映射分散/聚集映射PCI双重地址周期映射 DAC简单的PCI DMA例子ISA设备DMA概述DMA的操作是需要物理地址的,但是在linux内核中使用的都是虚拟地址,如果想要用DMA对一段内存进行操作,如何得到这一段内存的物理地址和虚拟地址的映射呢?dma_alloc_coherent这个函数实现了这种机制。1、函数原型: void *dma_alloc_coherent( struct

2021-11-26 08:37:16 12019 1

原创 MLX5 VDPA 实现分析

关键流程分析

2021-11-16 13:55:18 1135

原创 vdpa中set_map接口iotlb参数的理解

1. 只有vhost_vdpa的情况,iotlb 才的管理会放在vdpa_device中, 也就是iotlb不为空,因为vhost_vdpa device 中有iotlb,真正的映射关系在userspace的qemu中管理,所以需要通过vhost的iotlb将映射关系下发到硬件中;除此之外,vhost还负责从VA到PA的映射转换;真个过程是 vhost_vdpa 将iotbl请求转发给了 vdpa device 触发的2. 在 virtio_vdpa 的情况下,iotlb是virtio_driver同k

2021-11-10 09:09:48 363

转载 [RFC,18/24] vhost-vdpa: support ASID based IOTLB API

[RFC,18/24] vhost-vdpa: support ASID based IOTLB APIMessage ID [email protected] (mailing list archive) State New, archived Headers show Series Control VQ support in vDPA|expand Commit MessageJason WangS...

2021-11-06 18:00:32 166

转载 [RFC] vhost: basic device IOTLB support

[RFC] vhost: basic device IOTLB supportMessage ID [email protected] (mailing list archive) State New, archived Headers show Commit MessageJason WangDec. 31, 2015, 7:13 a.m. UTCThis patch tries to i.

2021-11-06 17:29:47 415

原创 BF2 swithdev representor 方案介绍

背景传统virtio 半虚拟化模型SRIOV 模型,需要单独离管理存在的问题:1. 无论kernel状态下还是dpdk情况下,SRIOV 口没有通过bridge直接进行管理,而是直接嵌入了eswitch2. 这种模式叫做 legacy 模式3. 需要为sr-iov增加软件的 representation 模型4. representation 模型需要无缝接入ovs, tc,可以通过已有方式对硬件进行 traffic rules 下发VF 的 represen..

2021-10-30 10:51:19 2257

翻译 通过 auxiliary bus 管理 multifunction 设备

引言设备驱动通常存在于单个内核子系统中。然而,有时开发人员需要处理此模块之外的功能。例如,一个暴露以太网和 RDMA 功能的网络接口卡 (NIC)。只有一个硬件,但有两个驱动用于这两个功能。这些驱动程序需要在各自的子系统内工作,但它们也必须共享对相同硬件的访问方法。当前内核中没有将这些驱动程序连接在一起的标准方法,因此开发人员发明了ad-hoc方法来处理它们之间的交互。最近,Dave Ertman 发布了一个补丁集,介绍了一种称为“auxiliary bus”的新型总线,以解决这个问题。Comple

2021-10-22 22:35:07 677

翻译 Auxiliary Bus

Auxiliary 总线在某些子系统中,核心设备(PCI/ACPI/其他)的功能对于单个设备来说过于复杂,无法由单个某驱动程序(例如 Sound Open Firmware)管理,多个设备可能会实现共同的功能交集(例如 NIC+ RDMA),或者驱动程序可能想导出一个接口供另一个子系统驱动(例如 SIOV Physical Function export Virtual Function management)。将功能拆分为代表sub-domains功能的child- devices,可以通过 Lin.

2021-10-22 21:17:18 863

原创 virtio协议1.0 -- 网络设备

引子virtio network device 是一种虚拟以太网卡 迄今为止virtio支持的最复杂的设备(其他设备可挖掘的内容很多) 空缓冲区被提前放置在RX virtqueue中用于接收数据包,收包一个队列 发送的数据包被排队到TX virtqueue中以便按该顺序传输,发送一个队列 控制队列用于控制和高级过滤功能Device ID1Virtqueues队列分布布局 如果VIRTIO_NET_F_MQ 没有协商,N = 1 如果VIRTIO_NET_F_MQ 协商了,..

2021-10-12 16:22:55 1991

原创 virtio协议1.0 -- PCIe 类型的 Virtio 设备

引子virtio 可以使用不同类型的总线,这里讲解PCIe类型的virtio设备 virtio通常实现为PCIe类型 virtio可以是PCI设备也可以是PCIe设备 设备 设备暴露给客户机的接口需要符合PCI/PCIe规范 PCI 设备发现vendor id: 0x1af4 device id: 0x1040 + ${Virtio Device ID},确定具体设备类型,Legacy的是0x1000 到 0x103F 设备 PCI Vendor ID 必须是0x1AF...

2021-10-11 09:19:02 2552 1

原创 vDPA kernel fmk: vDPA bus drivers for kernel subsystem interactions

vhost-vDPA bus driverdesign of vhost-vDPA bus driversdf

2021-10-08 13:48:28 255

原创 virtio协议1.0 -- 设备初始和操作

设备初始化 驱动初始化步骤 Reset 设备 设置ACKNOWLEDGE 状态,通知设备:客户机设别了设备 设置DRIVER 状态,客户机找到了对应的驱动 读取设备的feature bit并写会驱动支持的feature bit 子集到设备,接收feature bit前驱动可能读取device-specific configuration 进行细粒度校验 设置FEATURES_OK,此后,驱动不能在接受更多新的feature bit 读取设备状态,确保...

2021-09-29 15:23:03 448

原创 vDPA kernel fmk: vDPA bus for abstracting HW

目的dive into the technical details of the architecture use cases for kernel vDPA fmk with containers and VMs Review design and implementation vDPA bus vDPA bus driver vDPA device driver vDPA devicesdatapath complies with virtio specification.

2021-09-29 13:32:56 300

原创 virtio协议1.0 -- 基础组件

这里描述符的是virito的通用基础组件,不依赖于总线类型,如PCI,MMIO, Channel IO 等0. virtio基本基础组件Device status 域 Feature bits Device Configuration space 一个或多个 virtqueues1.Device status 域驱动在发现和加载设备过程中,会经历一系列加载步骤,device status 就是在底层提示加载步骤的完成状态,底层设备通过这些状态值,知道需要完成的事情状态 ACKN.

2021-09-28 08:41:47 1300

原创 virtio 协议1.0 -- 介绍

1. 介绍virtio 是一族设备 用在虚拟化环境中 在虚拟机中看起来是PF设备 virito 协议要求 通用性:使用通用的总线协议和通用的中断方式 高效:设备需要保证cacheline的一致性 标准化:标准化的操作,不依赖于总线的类型,如PCI, MMIO, Channel IO等等 可扩展:设备和客户系统在设备初始化阶段通过feature bit进行协商保证前后版本兼容 2. 协议术语Legacy Interface:0.95版本的接口定义 Legacy Dev..

2021-09-27 13:49:37 1365 1

原创 用MMAP分配内存

背景知识 MAP_ANONYMOUS The mapping is not backed by any file; its contents are initialized to zero. The fd and offset arguments are ignored; however, some implementations require fd to be -1 if MAP_ANONYMOUS (or MAP_ANO...

2021-05-13 09:39:30 1224

原创 白话 virtio DMA 过程 (三) -- DMA在desc中成链问题

在virtio数据传输中,如果一个报文使用多个desc,那么这些desc会通过VRING_DESC_F_NEXT进行成链动作。在virtio中有一个can_push的参数,如果can_push为0,那么virtio_net_hdr会单独真用一个desc(sg或mbuf),报文pkt占用一个单独的desc(sg或mbuf),virtio_net_hdr和pkt的两个desc通过VRING_DESC_F_NEXT形成链。也就是说,不论报文的大小,如果can_push为0,都会存在发送端成链的现象,下面是相关的不

2021-04-26 14:11:31 887

原创 白话 virtio DMA 过程 (二)

上一篇里面,我们讲述了DMA的过程,本文里面,我们讲述virtio报文的格式和处理工作。virtio 报文如下图所示除了我们常见的报文头 + 报文载荷以外(蓝色部分),以网络为例,还会增加一个virtio_net_hdr,这个virtio_net_hdr 主要用在virtio前后端传输使用,前端用这个头告诉后端一些信息,如buffer数量,特殊卸载过程、参数等等,这些都可以是自定义的。所以我们在代码里面会看到,在报文的头部会追加virtio_net_hdr。virtio_net_hdr 在DPD

2021-03-29 09:50:06 873

原创 白话 virtio DMA 过程 (一)

进行VIRTIO DMA相关工作,看过的同学都知道,VIRTIO DMA 中非常复杂的其实不是desc表什么的,而是index的更新,什么index,last_xx_index等等,搞得人云里雾里,而且网上大部分都是前后端分开描述,而且都是基于代码讲解,更让入门的同学不知所踪。今天我们就在这个文章里面,对virtio DMA的过程进行白话描述,不涉及具体代码,只讲清原理和设计原因为目的虚拟化模拟的就是后端的虚拟硬件,我们在这里就认为他们是硬件,所以本位把后端成为HW;前端驱动在本文里面成为SW。我们

2021-03-23 20:55:09 2073 4

2. pg302-qdma.pdf

基于Xilinx的QDMA 2019.1 硬件开发者手册,应用于5G PHY层的云化硬件加速

2020-07-16

Debug Hacks中文版—

Debug Hacks中文版—深入调试的技术和工具.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

2017-08-11

深入Linux内核架构(中文版)-超高清-由Word转pdf而成

深入Linux内核架构(中文版)-超高清-由Word转pdf而成 深入Linux内核架构(中文版)-超高清-由Word转pdf而成 深入Linux内核架构(中文版)-超高清-由Word转pdf而成 深入Linux内核架构(中文版)-超高清-由Word转pdf而成 深入Linux内核架构(中文版)-超高清-由Word转pdf而成

2017-05-20

EPA的完整集合

EPA 合集

2016-10-09

SoruceTree 1.6 完美中文破解版

SoruceTree 1.6 完美中文破解版 下载地址见文档 破解方法见压缩包内的说明文档

2016-04-14

Addison Wesley - ARM Architecture Reference Manual (2nd Edition)

ARMV8 ARM Architecture Reference Manual SoC

2016-01-27

ARM GICV3 中断控制器规范

ARM GICV3 中断控制器规范

2016-01-22

ARMV8 cortex-a57 64位 aarch64 开发者手册

ARMV8 cortex-a57 64位 aarch64 开发者手册

2016-01-22

ARM® Cortex®-A57 MPCore Processor Technical Reference Manual.pd

ARM开发必备

2015-12-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除