自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 net/mlx5e: TC, support per action stats

【代码】net/mlx5e: TC, support per action stats。

2024-02-20 10:28:49 392

原创 subfunction

kernel 6.5 merge了上面的commit后,SF的行为有了个变化,以前active local sf的时候,auxiliary sub-device就会创建,现在要等到devlink reload之后。devlink会传DEVLINK_PORT_FLAVOUR_PCI_SF到kernel,创建local sf。

2023-10-27 17:18:29 134

原创 ovs internal port offload with multiple mirrors

1.1 发送方向, 首先match vf的mac,然后mirror到port 1和port 4,最后跳转到split table。1.3 在1.2做了encap后,match pf mac和reg c0,然后跳转到termination table。2.2 match tunnel ip,然后跳转到三个indir table,从port 1, 2, 4发送出去。2.1 接收方向,match pf mac,然后跳转到root table。2.3 三个indir table。

2023-06-09 15:27:47 104

原创 tc flower hw offload counters

首先mlx5_core驱动有一个单线程的workqueue,每一秒mlx5_fc_stats_work都会被调到,去fw里面查询flow对应的counter。tc_action的cpu_bstats和cpu_bstats_hw并不是每个action都有,tcf_idr_create的时候有个参数cpustats控制创建与否。之所以有两个counter,是因为per cpu的counter太耗费cpu资源,action初始化的时候可以选择不用per cpu counter。

2023-01-05 11:35:21 737

原创 flow indr dev offload

驱动加载的时候会调用flow_indr_dev_register(mlx5e_rep_indr_setup_cb, rpriv)这样就把数据结构struct flow_indr_dev放到链表flow_block_indr_dev_list中。*(struct flow_indr_dev *)0xffff9230d9b07240 = { .list = (struct list_head){ .next = (struct list_head *)fl...

2022-01-25 18:03:58 635

原创 vxlan tunnel收发原理

commit ee122c79d4227f6ec642157834b6a90fcffa4382Author: Thomas Graf <[email protected]>Date: Tue Jul 21 10:43:58 2015 +0200 vxlan: Flow based tunneling Allows putting a VXLAN device into a new flow-based mode in which skbs with a ip...

2021-11-04 22:13:49 653

原创 linux 编辑视频工具 ffmpeg

转mp4,节省空间# ffmpeg -i 16300022.AVI -strict -2 -qscale 0 output.mp4从第一分钟开始,剪辑10秒钟# fmpeg -ss 00:01:00 -i output.mp4 -t 10 -c copy cut.mp4

2021-10-17 20:23:28 102

原创 dev_set_name

# ls /sys/class/infinibandmlx5_0 mlx5_1创建bondmodprobe bonding/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 upecho '2' > /sys/class/net/enp8s0f0/device/sriov_numvfs/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 vf 0 state enable/.

2021-08-24 15:08:28 749

原创 stack devices

$ git format-patch -o ~/stack_devices/1 b055ecf5827d81a60144560266a78fea652bdf1a..8914add2c9e5518f6a864936658bba5752510b39$ lltotal 312K-rw-r--r-- 1 cmi nvu 8.8K May 25 09:04 0001-net-mlx5e-E-Switch-Maintain-vhca_id-to-vport_num-map.patch-rw-r--r-- 1

2021-05-25 20:25:03 141

原创 efibootmgr

原来装的是fedora 30,升级到kernel 5.10后,发现bcc不能用了。提示说要升级到fedora 32。装完32后发现efiboomgr里面只有一个Fedora,也就是说原来的fedora 30不见了,虽然磁盘没有丢,但是没法启动了。可以用下面的命令添加一项:efibootmgr -c -d /dev/sda -p 1 -L "fedora_30" -l "\EFI\fedora\grubx64.efi"[root@dev-r630-03 ~]# efibootmgr -vBootCu

2020-12-18 23:24:02 955 2

原创 udev

装了OFED,会安装下面的文件:# cat /etc/udev/rules.d/82-net-setup-link.rulesSUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}!="", ATTR{phys_port_name}!="", \ IMPORT{program}="/etc/infiniband/vf-net-link-name.sh $attr{phys_port_name} $attr{phys_switch_i

2020-12-04 23:10:05 394

原创 ovs的revalidator

一般情况下ukey->reval_seq和udpif->reval_seq是一样的,所以在revalidate_ukey函数里need_revalidate是false。但是如果添加或者删除了openflow rule的规则,udpif->reval_seq会加1。(gdb) bt#0 set_tables_version (ofproto_=0x1169f50, version=0xa) at ofproto/ofproto-dpif.c:2017#1 0x000000

2020-09-14 17:17:49 973

原创 TRex

Trex是思科的一款基于DPDK的网络测试工具。首先安装centos 7.5,然后安装kernel-devel-3.10.0-862.el7.x86_64.rpm。最好不要用# yum install kernel-devel,以免安装了最新的,和当前kernel不匹配。下载MLNX_OFED_LINUX-4.4-1.0.0.0-rhel7.5-x86_64.iso,安装:./mln...

2020-02-20 22:17:51 2933

原创 linux flashplayer

下载flash_player_npapi_linux.x86_64.tar.gz,放在根目录解压。然后把/libflashplayer.so放到个人目录里。$ mkdir ~/.mozilla/plugins$ cp /libflashplayer.so ~/.mozilla/plugins...

2020-02-16 15:37:18 121

原创 PERCPU

https://0xax.gitbooks.io/linux-insides/content/Concepts/linux-cpu-1.htmlpercpu对某些应用来说非常高效,但是对需要频繁分配percpu变量时,机会变成累赘。因为分配时需要一个全局变量的锁。最新的upstreamkernel里面有一些patch解决了tc里面的percpu的问题。commit d86784fe...

2020-02-14 18:13:34 488

原创 ping

下载地址:git clone [email protected]:iputils/iputils.git还有另外一个gnu的ping:wget http://ftp.gnu.org/gnu/inetutils/inetutils-1.9.4.tar.xzstruct icmphdr { __u8 type; __u8 code; __...

2019-12-07 21:25:24 275

原创 ubuntu用netplan配置静态ip

[chrism@hp netplan]$ cd /etc/netplan/[chrism@hp netplan]$ cat 01-network-manager-all.yaml# Let NetworkManager manage all devices on this systemnetwork: version: 2 renderer: NetworkManager et...

2019-11-24 17:22:17 3122 1

原创 GRO checksum在tcpdump中incorrect的问题

tcpdump -i $link src 192.168.1.14 and port 4000 and greater 100 -v -nn当rx-checksumming打开的时候,skb->csum里面是硬件计算的tcp checksum,但是不包括伪头。dev_gro_receive(){ ... /* ...

2019-08-28 15:35:23 1232 1

原创 不产生initramfs的解决方法

cd /images/chrism/linuxmake distcleancp /swgwork/majd/for_people/for_guyle/.config .config ##Enable the ACT_CT (Or take the .config from the dev-l-vrt-202 machine under )make menuconfig make ...

2019-07-09 19:58:20 212

原创 用pktgen产生随机mac流量

在samples/pktgen目录下面并没有具体的例子,但是pktgen是支持的,需要修改下面的文件:[chrism@dev-r630-04 linux]$ git diff samples/pktgen/pktgen_sample02_multiqueue.shdiff --git a/samples/pktgen/pktgen_sample02_multiqueue.sh b/samp...

2019-05-31 14:50:42 707

原创 ovs的dot1q-tunnel的vlan-mode

# man ovs-vswitchd.conf.db dot1q-tunnel A dot1q-tunnel port is somewhat like an access port. Like an access port, it carries packets on the single VLAN specifie...

2019-05-12 20:13:20 1524

原创 在ubuntu上开启kdump-tools服务

# apt install linux-crashdumpubuntu多了一个grub配置文件 /etc/default/grub.d/kdump-tools.cfg,这样就不需要在/etc/default/grub设置crashkernel大小了。# cat /proc/cmdlineBOOT_IMAGE=/boot/vmlinuz-4.18.0-17-generic roo...

2019-04-23 22:10:11 4329 6

原创 用bcc打印调用函数和返回的时间

#!/usr/bin/pythonfrom __future__ import print_functionfrom bcc import BPFimport socket# load BPF programb = BPF(text="""#include <linux/pci.h>BPF_PERF_OUTPUT(events);struct data_t { ...

2019-04-12 15:51:23 475

原创 用crash打印所有pci设备的驱动和内核模块信息

笔记本所有pci设备如下:[root@lenovo ~]# lspci00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Gener...

2019-04-03 16:50:50 561

原创 如何用crash找到进程完整的命令

如果仅仅是找到命令本身,task_struct.comm就够了,如果要找到后面的参数则需要花些功夫:crash> ps | grep ping 23552 23216 7 ffff8fd784dfc500 IN 0.0 135716 3896 pingcrash> task_struct.comm ffff8fd784dfc500 comm = "...

2019-04-01 10:40:32 1758

原创 用crash打印pci_bus_type和驱动driver_data

在Solaris mdb里面有个prtconf命令,可以打印device tree,也可以显示驱动设置的私有数据结构。但是crash并没有类似的命令。今天发现了一个全局变量pci_bus_type,通过这个变量可以实现类似的功能。https://github.com/mishuang2017/crash/commit/b8ce5ca4a4004762ba00547c427450d189ea1a...

2019-03-24 18:49:51 260

原创 用bcc打印参数内容

Linux DTrace仍然遥遥无期,不过最近发现bcc功能也很强大,可以打印参数成员变量的内容。https://github.com/mishuang2017/sm/blob/master/bcc/device_add.py'modprobe -v mlx5_core'输出如下:$ sudo ./device_add.pyTIME(s) device ...

2019-03-22 18:07:50 536

原创 tun/tap example

tun.cudp-server.cudp-client.c 1. tun server[chrism@t420 tun]$ ip a1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00...

2018-12-02 20:49:27 1888

原创 sleep queue

crash&gt; ps | grep udp-server 23260 2174 2 ffff8ae0f3751e80 IN 0.0 4352 1368 udp-servercrash&gt; task_struct.files ffff8ae0f3751e80 files = 0xffff8ae121916940crash&gt; files_st...

2018-12-02 20:34:44 254

原创 Pulse Secure installation on linux

在ubuntu 18上可以参考下文:https://blog.csdn.net/cpak00/article/details/83790837sudo apt install network-manager-openconnect-gnomehttps://cis.technion.ac.il/en/central-services/communication/install-...

2018-11-04 10:21:54 5186

原创 debian/ubuntu

1. 设置源:mirrors.aliyun.comhttps://opsx.alibaba.com/mirror/etc/apt/sources.listhttp://www.cnblogs.com/wudonghang/p/8e0b1c5ef4f570a3eab4367080a80a11.htmlubuntu aliyun:https://blog.csdn.net/ezre...

2018-11-03 16:45:10 752

原创 Subject: [PATCH] net: solve a NAPI race

包括我在内很多人认为Linux已经很成熟了,不应该有什么不可思议的bug。最近发现有个bug在2017年才fix。From 39e6c8208d7b6fb9d2047850fb3327db567b564b Mon Sep 17 00:00:00 2001From: Eric Dumazet &lt;[email protected]&gt;Date: Tue, 28 Feb 2017 ...

2018-10-28 22:14:37 328 1

转载 Linux内核同步机制之completion

https://blog.csdn.net/bullbat/article/details/7401688 #include &lt;linux/module.h&gt;#include &lt;linux/init.h&gt; #include &lt;linux/sched.h&gt;#include &lt;linux/kernel.h&gt;#include &lt;l...

2018-10-27 21:01:00 208

原创 Linux进程与线程的关系

crash&gt; ps | grep ovs 5657 1 10 ffff88031b910000 IN 0.0 28668 5236 ovsdb-server 5715 1 8 ffff880329ec1d00 IN 0.9 1284180 151728 ovs-vswitchdcrash&gt; task_struct.co...

2018-04-07 21:22:37 261

原创 如何让ovs-vswitchd产生core文件

ulimit -c unlimited echo "/tmp/core-%e-%p" &gt; /proc/sys/kernel/core_pattern echo 2 &gt; /proc/sys/fs/suid_dumpable因为fedora不用init,而改用systemd,所以他下面的daemon默认不生成core。所以看似简单的问题,而不...

2018-04-05 17:50:16 784 1

原创 用串口连接两台服务器

今天才发现服务器上的是公头,所以要买一根母对母的线,把两台服务器连接起来。1. 查询波特率# stty < /dev/ttyS1speed 38400 baud; line = 0;lnext = <undef>; min = 1; time = 0;-brkint -icrnl ixoff -imaxbel iutf8-icanon -iexten...

2018-04-02 20:31:38 2245 1

原创 slab/slub main data structures

name &lt;active_objs&gt; &lt;num_objs&gt; &lt;objsize&gt; &lt;objperslab&gt; &lt;pagesperslab&gt; : tunables &lt;limit&gt; &lt;batchcount&gt; &lt;sharedfactor&gt; : slabdata &lt;a

2018-03-29 10:57:30 231

原创 进程,可执行文件和内存的关系

假设我们有如下程序:#include &lt;stdio.h&gt;int bss;int data = 10;void f(unsigned long *a){ *a = 1;}int main(int argc, char*argv[]){ int stack; void *heap; printf("bss:...

2018-03-24 23:06:05 1583

原创 如何在Linux内核中设置断点

function q1{set -x modprobe vfio modprobe vfio-pci echo 15b3 101a &gt;/sys/bus/pci/drivers/vfio-pci/new_id ls /dev/vfio qemu-system-x86_64 --enable-kvm \ ...

2018-03-22 11:25:12 1734

原创 flow在OVS用户态中是如何存储的

我们知道OVS在内核态收到一个包后,如果在内核中没有对应的规则,这个包会被送到用户态查询,看有没有相应的规则。如果没有的话,默认的action就是normal,也就是正常转发。如果我们添加下面的flow,在OVS中是如何存储的呢?# ovs-ofctl add-flow $br 'dl_dst=24:8a:07:88:27:9a  table=0,priority=10,action=no

2017-12-29 20:47:25 985

空空如也

空空如也

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

TA关注的人

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