自定义博客皮肤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

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

原创 Linux内核Bug的“难度地图”与Debug工具箱:一份给C语言工程师的实用指南

https://mp.weixin.qq.com/s/zIUkcLG8QZzS4oWREhOS6A

2026-11-05 09:47:38 174

翻译 学习一下页表

分页虚拟内存是和虚拟内存一起在1962年的 Ferranti Atlas Computer上第一次发明的。这个feature被新的计算机采用了,也被类Unix计算机采用。1985年这个feature被加到英特尔80386上,Linux 1.0就在这个cpu上开发的。页表把CPU看到的虚拟地址映射到外部总线看到的物理地址。Linux把页表定义成一个层次结构,现在是5级层次。每个架构相应的代码会映射到对应的硬件,因为不同硬件有不同的限制。物理地址到虚拟地址到映射是通过物理页帧表示的。

2026-10-28 14:40:40 4

原创 OCP2026:国际开源硬件春晚,网络篇

https://mp.weixin.qq.com/s/pljYg43EAyNtYl43dtqYCg

2026-10-18 08:53:13 125

原创 为什么交换机里会有HBM?

为什么交换机里会有HBM?

2026-10-15 15:47:46 224

原创 2026云栖大会阿里网络硬件图鉴

https://mp.weixin.qq.com/s/6YTmbEVjPn1fuPm6dHKZeQ

2026-10-09 08:22:57 111

翻译 deepseek v3的亮点:用于AI架构的硬件的可扩展挑战和反思

快速扩展的LLM揭示了当前硬件架构的重要不足,包括存储容量的限制,计算效率的限制,和互联带宽的限制。Deepseek-V3基于2048个英伟达H800 GPU进行训练,展示了基于硬件的模型协同设计可以有效的解决这些挑战,从而获得大规模低成本的训练和推理。这篇文章展示了一个deepseek V3/R1模型架构和AI基础设施的深度分析,重点指出了关键创新点:用多头潜在注意力机制(MLA)来提高存储效率;混合专家模型(MoE)架构来优化计算和存储的平衡;FP8混合精度训练来解锁硬件能力的完整潜力;

2025-11-16 16:13:42 336

原创 debug kernel 的一些trace的方法

上一篇文章记录了第一次patch kernel的经历。这篇再记录一下当时的一些debug方法。

2025-08-25 21:27:54 391

原创 记录一下第一次patch kernel的经历

作为一个Linux开发人员,但是又不是kernel开发。能够向内核提交代码,一直觉得是一件很cool的事情。最近在开发AMD V3K SOC相关的代码的时候,终于发现了kernel的一些bug,并成功的向内核提交了batch。也算是完成了一个个人的里程碑吧。所以记录一下。大概流程2周,还提交了两个patch,有点超出预料。

2025-08-16 15:41:48 604

翻译 Cisco 8000 Silicon One™ QOS Architecture思科S1 QoS架构

之前的章节简要的提到过,Cisco8000的VOQ的复制是基于slice的。所以公平性也是基于slice的。这意味着如果来自不同ingress slice的端口要发往相同的egress端口的话,对于给定的流量类别,不同slice上的ingress VOQ就以round robin的形式调度到同一个egress OQ。所以在拥塞场景下对于给定的队列,带宽平均分配,并保证slice级别的公平性。

2025-06-24 21:25:25 604

翻译 【翻译】dRMT: Disaggregated Programmable Switching

我们介绍了dRMT(解耦合可重配置匹配动作表),一个新的可编程交换机架构。dRMT克服了RMT的2个重要的限制(RMT是当前主流的基于流水线架构的可编程交换机):(1)表内存是流水线阶段独有的,意味着一个阶段不使用的内存不能被别的阶段所使用。(2)RMT被硬件连线决定,在包穿过流水线各个阶段的时候,必须串行执行匹配和动作。我们会说明这些限制使得要在RMT上有效的执行程序会很困难。dRMT通过解耦合可编程交换机的内存和计算资源来解决这两个问题。

2025-05-20 14:40:46 315

原创 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 1029

原创 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 286 1

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

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

2025-01-18 10:00:14 1024

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

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

2024-10-28 08:05:42 468

原创 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 887

原创 多线程编程实践总结

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

2024-09-21 14:55:55 488

原创 __sync_bool_compare_and_swap

【代码】__sync_bool_compare_and_swap。

2024-09-17 15:21:43 426

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

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

2024-09-17 07:47:54 365

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

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

2024-09-16 17:04:00 265

原创 Create new things with replacing name

【代码】Create new things with replacing name。

2024-07-12 08:38:08 170

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

**/

2024-07-02 20:38:33 302

原创 [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 937 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 506

原创 neovim compare 2 files

【代码】neovim compare 2 files。

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

原创 xml vs json vs yaml

2024-01-06 17:40:09 488

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

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

2024-01-05 12:20:56 364

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

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

2023-12-21 08:12:53 1325

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

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

2023-12-01 14:59:57 158

原创 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 170

原创 keyboard special characters

【代码】keyboard special characters。

2023-09-22 10:14:41 185

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

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

2023-08-07 08:15:56 196

原创 pmbus block read

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

2023-07-13 17:44:46 584

原创 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 478

原创 mmc host driver test with mmc_test

Reference:

2023-03-31 14:09:53 238

原创 Linux emmc host driver, basic idea

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

2023-03-29 15:49:05 435

原创 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 1508

原创 C system()的返回值

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

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

原创 一个以太网frame的结构

一个以太网帧的结构

2022-11-27 20:56:39 275

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

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

2022-09-20 22:30:05 3622

转载 AC coupling and DC coupling

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

2022-09-20 13:26:11 1595

dRMT paper sharing

internal sharing of the dRMT paper

2025-05-24

Data Clustering: 50years beyond kmeans 翻译

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

2015-04-18

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

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

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

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

TA关注的人

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