自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jason的专栏

It is easier to find your bugs if you take it slow.Actually taking it slow is faster in the long run

  • 博客(240)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 P4 hello world学习曲线确实有点陡。。

这个Ingress就定义了一个ipv4_lpm的表,这个表当包的ipv4头是有效的时候就应用match&action,根据lpm如果ipv4的目的地址匹配,就执行ipv4_forward,如果不匹配就drop。P4作为一个交换机编程语言,主要是为了写交换机的特性而生的(也就是说告诉交换机怎么处理包),理想如上图。它说P4可以用来指定包头,包解析器,多个匹配动作表,以及通过这些表的控制流,并且这篇文章引入了编译器来隔离不同的交换机实现,只保留了图2的交换机抽象。文章通过mTag的例子介绍了P4的基本组件。

2025-05-02 15:53:45 897

原创 ipxe boot from tftp/nfs kernel panic unknown-block(0,255)

但是在启动的时候却报kernel panic,各种问AI,各种尝试无果之后,在几个微信群请教,有一个朋友说,参数加上dhcp,确保网络在nfs挂载的时候是好的,但是加上之后还是不行。但是他们使用的pxe dhcp boot,利用dnsmasq.conf调用pxe脚本,我们的HW lab已经有dhcp服务器,但是并不隶属我们管理。为了确认我们开发的BSP是否适应ASIC team的CentOS开发环境。需要在我们HW Lab搭建类似的CentOS环境。

2025-03-11 14:20:28 156

翻译 用于Meta分布式AI训练的RDMA over Ethernet

最近几年AI模型的计算密度和规模都快速增长,急需构建一个有效可靠的专门网络基础设施。本文介绍Meta用于分布式AI训练的基于融合以太网的远程直接内存访问的设计,实现和运营。网络拓扑-为了支持AI硬件平台的快速演进,我们把基于GPU的训练放到它自己的后端网络当中去。路由-训练负载本质上带有加载不平衡性和突发性,因此我们部署了几代路由机制来实现近乎最优的流量分布。传输-我们起初想用DCQCN来做拥塞管理,但是最后转向使用集合库来做拥塞管理。运营。

2025-01-18 10:00:14 176

原创 关于AI网络架构的文章

思科OCP anounce了800G 51.2T G200-based minipack3 switch。对比之前Tesla anounce的TTPoE。真的很好奇,谁是AI-networking的未来,以及思科是否走在正确的路上,以及S1背后的技术。大致浏览了相关的文章,先mark住,回头再细读一下。

2024-10-28 08:05:42 350

原创 lrzsz串口文件传输

此时如果需要传输文件,需要借助rz/sz工具,可以使用的传输协议有ZMODEM、YMODEM、XMODEM,默认是ZMODEM。首先说明一下rz和sz的文件传输方向,这些命令都是在调试板上执行的,调试板通过串口和PC相连。如果遇到 “sz skipped” error,大概率是文件或者文件夹没有rwx权限。rz表示调试版发起从PC接收文件,sz表示调试版发送向PC传送文件。1. 先在开发版上安装lrzsz,我是通过buildroot安装的。这里记录item2下使用rz/sz进行文件传输的操作。

2024-10-06 14:04:52 494

原创 多线程编程实践总结

几个月前因为添加了一个sensor polling/checking的几个background线程,应用变成了一个多线程的进程。在这几个月过程中,debug了很多问题。上周给team做了一个技术分享,也在这里做一个总结。在我们的系统当中,主要通过移除临界区(通过把进程可见的数据线程化,改进代码获取锁的顺序,fork之后移除对localtime_r()库函数访问等方法)解决问题。其中最值得玩味的问题是fork之后localtime_r()死锁的问题,我们还发现如果设置了TZ之后就比较不容易复现问题。

2024-09-21 14:55:55 406

原创 __sync_bool_compare_and_swap

【代码】__sync_bool_compare_and_swap。

2024-09-17 15:21:43 322

原创 一个直接调用系统调用的例子

【代码】一个直接调用系统调用的例子。

2024-09-17 07:47:54 253

翻译 系统调用解析第一部分【翻译】

read()系统调用作为探索内核系统调用机制的一个例子。它实现在fs/read_write.c当中。它是一个很短的函数,它会调用vfs_read()完成具体的工作。从调用角度看,最有趣的事这个函数的定义方式,它用SYSCALL_DEFINE3()这个宏来定义。事实上从代码上看,这个函数到底调用了什么函数不是很清楚。这些SYSCALL_DEFINEn()宏是内核代码定义系统调用的标准方式。这里尾部的n代表参数的个数。这些宏定义在。

2024-09-16 17:04:00 166

原创 Create new things with replacing name

【代码】Create new things with replacing name。

2024-07-12 08:38:08 122

原创 __attribute__ ((cleanup(xxx))) -- gcc extension

**/

2024-07-02 20:38:33 165

原创 [Reading Summary] OpenFlow: Enabling Innovation in Campus Networks

The backgroud is that I am working as an engineer in cisco developing products with inhouse ASIC/sillicon one. But I have no permission to read related documents, even the datasheet. Yeah, it sounds like crazy. So I have to search public documents for unde

2024-05-15 08:22:21 785 1

原创 mark several interesting papers

GitHub - YouAreSpecialToMe/Metis: Metis: Understanding and Enhancing Regular Expressions in Networkhttps://openreview.net/pdf/55e8e4594037ac9febe7d3055b20fa52eeb85d9b.pdfhttps://people.csail.mit.edu/alizadeh/papers/drmt-sigcomm17.pdfGitHub - genzj/llm-fine

2024-02-14 20:30:19 460

原创 neovim compare 2 files

【代码】neovim compare 2 files。

2024-01-21 10:01:25 500 1

原创 xml vs json vs yaml

2024-01-06 17:40:09 434

翻译 非阻塞交换网络的一个研究

电子艺术的发现和发展已经可以在我们的电话交换领域感受到了。很多国内外的实验室都有研究项目来构建经济的交换系统就是很好的证据。有些像ECASS系统这样的系统中,交叉点整列的角色比在现在的商用电话系统更加重要。在这些系统当中,普通的控制系统变得没那么贵,但是承担更多控制功能交叉点却更贵了。这样的系统的需求是交叉点尽可能少,但是能够同时建立的连接尽可能的多。这是两个对立的需求,一个商用系统必须在两者之间作出一个妥协。

2024-01-05 12:20:56 224

原创 pyenv: no such command `virtualenv-init‘

【代码】pyenv: no such command `virtualenv-init‘

2023-12-21 08:12:53 1108

原创 find/grep/sed/awk文本处理

【代码】find/grep/sed/awk文本处理。

2023-12-01 14:59:57 109

原创 recursive make and parallel build

If doing parallel build with -jobs, and use recursive make.And if different tasks have a same target (objective file), will have a chance hit a race condition. As different round of compilation may result a different objective file.

2023-11-14 09:23:35 111

原创 keyboard special characters

【代码】keyboard special characters。

2023-09-22 10:14:41 124

原创 怎么查看x86 Linux bzImage的boot sector

【代码】怎么查看x86 Linux bzImage的boot sector。

2023-08-07 08:15:56 135

原创 pmbus block read

有些设备会在SCL high超过25ms之后终止session,有些甚至SCL 50us就终止session。有些会等host的SCL更长时间而不会终止session。不同的pmbus device,或者不同的固件的pmbus device。他们对pmbus协议的理解或支持很不一样。

2023-07-13 17:44:46 383

原创 Linux怎么拿到initramfs的address和size

具体怎么送的根据Documentation/x86/boot.txt, boot loader需要把boot_params的基地址放到rsi寄存器里面。For x86,如果是separate的cpio的压缩文件,boot loader 需要把它送给Kernel。

2023-04-06 13:51:24 390

原创 mmc host driver test with mmc_test

Reference:

2023-03-31 14:09:53 168

原创 Linux emmc host driver, basic idea

在JESD84-B51中描述了emmc的标准。

2023-03-29 15:49:05 305

原创 JTAG 基础和svf specification介绍

JTAG: Joint Test Action Group是开发IEEE 1149.1的工作组,1149.1定义了一个测试开发版上芯片的标准。现在变成了芯片的一个最常见的接口,用途很多比如FPGA/CPLD image下载,芯片测试和访问。板子上一般是菊花链的形式连接基本的想法是给每个chip加一个测试wrapper,这个wrapper遵守JTAG协议。然后定义一些可以写到设备的指令。这个TAP是指Test access port,TAP控制器是一个有16个状态的有限状态机。

2023-02-03 10:35:51 1176

原创 C system()的返回值

比如如果grep call fail,它的返回值就是256。

2023-01-20 15:44:54 1678 2

原创 一个以太网frame的结构

一个以太网帧的结构

2022-11-27 20:56:39 219

翻译 理解以太网术语——速率,互联媒介和物理层

我们周围的大量的越来越多的事物和设备都使用以太网协议来做连接。历史上以太网是被用在局域网和城域网。但是现在由于它的受欢迎程度,以及像庞大市场和完善生态的这种好处的原因,像存储和汽车等市场也开始采用以太网。IC设计人员正在不断的寻找一个合适的以太网IP来集成到它们的应用当中。但是由于以太网独特的术语体系,以太网常常令人感到难以理解。不像PCIE/SATA/USB每个速率只有一个spec,同一个以太网速率具有很多不同的spec。

2022-09-20 22:30:05 2415

转载 AC coupling and DC coupling

交流耦合是指使用一个电容器去过滤掉信号中的直流成分。电容器必须与信号是串联的。交流耦合是有用的,因为信号的直流分量充当电压偏移,将直流分量从信号中移除可以增加信号测量的分辨率。直流耦合描述所测量到的信号包含交流及直流两个部分。使用直流耦合时,不需要添加额外的电容器来对信号进行滤波。如果信号源仅具有少量偏移电压,小于±100 mV,或者所获取信号的直流成分很重要,那么直流耦合的配置通常是最佳的。如果您的信号完全是直流成分,请确保使用直流耦合。否则,您的整个信号内容将被移除,看起来像是接地的0V 信号。

2022-09-20 13:26:11 1255

原创 验证私钥匹配证书

1. 验证私钥一致性openssl rsa -check -noout -in myserver.keyRSA Key is ok2. 验证证书和私钥有相同的modulusopenssl x509 -modulus -noout -in myserver.crt | openssl md5openssl rsa -modulus -noout -in myserver.key | openssl md5

2022-05-31 13:45:44 887

原创 查看二进制证书的内容

先修改原数据为二进制字符串格式sed -r -i'.org' 's/\S+ : //g' ca1 将DER格式的证书转换为PEM格式的证书cat ca1 | xxd -r -p | openssl -inform DER -out ca1.pem -outform PEM然后就可以看了openssl x509 -in root1.pem -text...

2022-05-31 09:11:45 356 1

原创 密码学基础总结

数字签名手写签名:1. 签名者身份(身份可鉴定),2. 签名者认可文件内容(文件内容不可篡改)。数字签名算法去实现上述数字签名类似的特性(实际上需要数字证书的辅助)主要数字签名算法(属于加密算法的一种)RSA DSA ECDSA加密算法双向加密算法:对称加密算法和非对称加密算法 单向加密算法:哈希算法主要对称机密算法(单密钥加密算法)DES 3DES AES主要非对称加密算法(公开密钥加密算法)RSA ECC主要哈希算法M...

2022-05-31 09:07:31 168

原创 写expect脚本的几个坑

In general, expect will save the expect's whole match string in expect_out(0,string) and buffer all the matched/unmatched input to expect_out(buffer). Each sub match will be saved in subsequent numbering of string such as expect_out(1,string), expect_out(2

2022-05-09 16:48:10 361 2

转载 代码安全性和健壮性:如何在if和assert中做选择?

一、前言我们在撸代码的时候,经常需要对代码的安全性进行检查,例如:指针是否为空? 被除数是否为 0? 函数调用的返回结果是否有效? 打开一个文件是否成功?对这一类的边界条件进行检查的手段,一般都是使用 if 或者 assert 断言,无论使用哪一个,都可以达到检查的目的。那么是否就意味着:这两者可以随便使用,想起来哪个就用哪个?这篇小短文我们就来掰扯掰扯:在不同的场景下,到底是应该用 if,还是应该使用 assert 断言?写这篇文章的时候,我想起了孔乙己老先生的那个问题:茴香

2022-03-31 13:12:59 215

原创 mac下用qemu编译执行linux/kernel

主要参考使用 qemu 搭建内核开发环境 - 离小木 - 博客园主要涉及以下几个点:virtualbox6.1下运行ubuntu server 18.04,然后打开ssh server,用于mac主机访问。否则virtualbox那个屏幕不能自动缩放真是辣眼睛。因为需要一个linux来编译kernel,直接在mac上编译估计没那么容易。sudo apt-get install openssh-server主机配置port forwarding。在虚拟机上下载linux k.

2022-01-03 15:48:44 2104 7

原创 python手写一个Enum

因为目标机器没有enum模块,无法import Enum。但是代码里面用到了开发机器上的Enum。没办法只能手写一个代替一下。# It mainly implements three enum features# 1. Return a enumhand class, has the key/enum class data: Task.DIEID# 2. The enumhand class instance has enum class data according key: Task('D

2021-12-26 14:29:32 441

原创 expect debug

可以帮助调试的方法:#!/usr/bin/expect -d exp_internal strace/trace了解一下expect_out数组,expect_out数组专用于expect命令,里面的元素包括:expect_out(buffer)、expect_out(X,string)、expect_out(X,start)、expect_out(X,end)、expect_out(spawn_id)上面的X字符表示从0-9的整数,具体如下expect_out(buffer)是一个看

2021-12-01 17:52:03 549

原创 expect怎么退出telnet

自己网上google了半天,网上各种乱七八糟的答案,最后问了同事。。。send -i $::telnetID "\035"

2021-11-30 20:59:37 256

原创 什么是link flap

Diagnose Link Flapping on a Switch - Ciscolink flap也叫port flap,指交换机的物理接口每秒持续3次以上的up和down。持续时间超过10秒钟。The common cause is usually related to bad, unsupported, or non-standard cable or Small Form-Factor Pluggable (SFP) or related to other link synchroniza

2021-11-29 13:43:39 4552

单元测试培训总结,总结一下,以后可能可以用

单元测试培训总结,总结一下,以后可能可以用

2024-04-06

run-shell with unix socket

run-shell with unix socket

2023-04-18

synce introduction

synce introduction

2023-04-18

ptp spec 1588

ptp spec 1588

2023-04-11

pcie4.0spec

pcie4.0spec

2023-03-23

svf spec for jtag ieee1149.1

svf spec for jtag ieee1149.1

2023-02-03

清华大学第五版《数值分析》课后答案

使用清华大学第五版《数值分析》学习计算方法课程时必不可少的辅导书。

2015-10-11

Data Clustering: 50years beyond kmeans 翻译

Data Clustering: 50years beyond kmeans 是聚类领域内一篇非常优秀的综述文章。对聚类的问题有一个很好的介绍。非常适合入门。现提供本人的翻译。

2015-04-18

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

TA关注的人

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