原创 VFIO IOMMU UIO ...

1、UIO的出現,允許將驅動程序用到用戶態空間裏實現,但UIO有它的不足之處,如不支持DMA、中斷等; 2、隨着虛擬化的出現,IOMMU也隨之出現,IOMMU爲每個直通的設備分配獨立的頁表,因此不同的直通設備,彼此之間相互隔離; 3、有一

原创 協議發送流程

tcp_sendmsg     tcp_write_xmit         tcp_mtu_probe(palyload checksum)             tcp_transmit_skb                 ip

原创 IOMMU之Interrupt Remapping

1、原理介紹 使用iommu,可以改變虛擬機外設中斷的投遞方式。以msi中斷爲例,msi msg裏不再需要填寫相關的中斷信息,而是轉換成interrput index的方式。中斷的管理信息(投遞方式、目標cpu信息、vector信息)存放

原创 Linux TSO流程分析

1、TSO(transimit segment offload)是針對tcp而言的,是指協議棧可以將tcp 分段的操作offload到硬件的能力,本身需要硬件的支持。當網卡具有TSO能力時,上層協議棧可以直接下發一個超過MTU數據包,而把

原创 dpdk添加設備基本流程

    本文主要以ixgbe設備爲例,說明向dpdk添加一個ixgbe設備的大致過程。 1、使用dpdk的程序(如ovs)調用rte_dev_probe向dpdk註冊一個設備,rte_dev_probe的核心處理函數爲local_dev_

原创 Linux GRO流程分析

1、概述 GRO是針對報文接收方向的,是指設備鏈路層在接收報文處理的時候,將多個小包合併成一個大包一起上送協議棧,減少數據包在協議棧間交互的機制。可以通過ethtool -K eth0 gro on/off來打開或關閉GRO功能,GRO雖

原创 Linux NAPI機制分析

1、概述 在NAPI之前,網卡每收到一個包就會觸發一箇中斷通知cpu讀取數據包,當數據包比較多時,中斷數過多勢必影響cpu性能,因此Linux引入NAPI機制,NAPI就是在收到中斷後,先將網卡收包模式切換成poll模式,等收包完成後重新

原创 dpdk基本概述

from: http://blog.csdn.net/zhaoxinfan/article/details/78408945 1、DPDK特點 DPDK全稱爲Date planedevelopment kit,是一個用來進行包數據處理

原创 ARM虛擬化

ARM目前採用的是硬件輔助虛擬化的方式,即在處理器模式上增加了EL2級別,將hypervisor運行在EL2上,那爲什麼需要這麼做呢? 1、虛擬化在業界上有一種說法叫做“經典可虛擬化模型”,也就是要求cpu的敏感指令屬於特權指令的一個子集

原创 mavell 7040使用方法

1、從mavell官網下載yacto sdk(marvell-release-2.1-17.04.0.zip.001、marvell-release-2.1-17.04.0.zip.002、marvell-release-2.1-17.0

原创 一個ixgbe空指針訪問導致宿主機宕機的未知問題

1、在某個機器上出現機器宕機,通過kdump日誌,初步看是因爲ixgbe裏有控制針訪問 2、使用crash分析空指針訪問原因 1)、安裝kernel debug包(包含debug調試信息的vmlinux); 2)、使用crash打開vm

原创 Linux tcp連接狀態之SYNC_RECV

1、按tcp/ip協議的描述,tcp三次握手過程,tcp的狀態遷移如下所示: 1)、客戶端通過connect系統調用向處於LISTEN狀態的服務端發送sync請求,客戶端進入SYNC_SEND狀態; 2)、服務端收到sync報文後,向客戶

原创 Linux tcp之sync cookie

1、常規的tcp連接裏,server在收到client的sync報文後就會分配request_sock,並將其放到半連接隊列裏;如果server受到惡意攻擊,攻擊方不斷的發sync包,發完就退出,這樣server端的半連接隊列很快就會被填

原创 IOMMU之Interrupt Posting

Interrupt Posting是在Interrupt Remapping的基礎上進一步提升了直通設備的中斷處理效率,使用Posting模式時,vcpu可以直接在non-root模式下處理中斷而不會被vm-exit到宿主機。 1、爲了支

原创 kvm中斷虛擬化

1、x86平臺主要使用的中斷類型有pic、apic及msi中斷,在多核系統下的apic結構圖如下所示,每個cpu有一個lapic,外部中斷通過ioapic轉發到lapic,如果是msi中斷,則繞過了io apic直接發給lapic。 2