自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 性能优化总结

1、使用各种缓存、使用重用的方式来提高性能。2、无论是cpu、kernel、应用层,都会用到缓存的概念。减少低速设备访问次数、减少低速操作的次数、使用重复使用(重用)的方式来减少反复分配释放资源造成的操作指令浪费。3、对cpu和kernel层来说,cache是高速、RAM是中速、磁盘和flash是低天速。4、对于应用来说,系统调用是费时的慢速操作。5、反复分配和释放资源是费时的,所以应用使用"线程池"来重用线程。6、cpu使用TLB缓存了线性地址到物理地址的转换记录,省去查找页表项。

2023-08-02 14:10:17 77 1

原创 uboot下使用wget下载内核或其他文件

uboot上的的 wget 应用是一个命令行下载器,允许通过 TCP 从 HTTP 服务器下载文件到指定的内存地址,目前 wget 仅支持 80 端口上的 HTTP 服务器,且不支持 HTTPS。此前,uboot 由于不支持TCP协议,仅支持 UDP 协议,因此只能通过 TFTP或 NFS 进行文件传输。CONFIG_PROT_TCP和CONFIG_CMD_WGET是需要进行配置,而配置CONFIG_PROT_TCP_SACK则启用选择性确认(SACK),以实现TCP协议的最大性能。

2023-04-25 07:55:01 338

原创 PCIe器件无法被枚举的排查方法

PCIe器件无法被枚举的排查方法

2022-09-24 16:27:41 1306

原创 如何使用usbmon进行usb抓包调试

1、概述usbmon是linux内核的一个小工具,主要是用来收集在USB总线上进行I/O操作记录。这个功能类似于工具(如tcpdump、Ethereal)进行网络套接字监控。2、使用方法(1)准备挂载debugfs文件系统(需要内核配置使能),然后加载usbmon模块(如果以模块方式编译)。如果是编译进内核,则不需要加载usbmon。# mount -t debugfs none_debugs /sys/kernel/debug# modprobe usbmon#(2)查看usbmon监控

2021-08-26 15:02:45 2247

翻译 PCIe系统复位

PCIe系统复位一、概述PCIe规范描述了四种类型的复位机制。其中三个是PCIe规范早期版本的一部分,现在被统称为传统复位,当中的两个也被称为基本复位(CR,Conventional Resets)。第四个类别和方法是2.0规范修订版中添加的,称为功能级别复位(FLR,Function Level Reset)。二、传统复位1 基本复位基本复位是由硬件处理,它复位整个设备,重新初始化每个状态机、所有硬件逻辑、端口状态及配置寄存器。该规则的例外是一组被标识为“sticky”的配置寄存器字段,除非所有

2021-08-09 17:46:25 6819

翻译 PCI错误恢复

PCI错误恢复一、概述许多PCI总线控制器能够探测到总线发生的错误,例如数据和地址线的奇偶校验错误,也称之为SERR、PERR错误。一些高级的芯片能够处理这些错误,比如有PCIe芯片、PCI主桥芯片。典型的操作是断开受影响设备的连接,停止对其所有的I/O操作,其目的是防止系统崩溃掉。例如,由于DMA的野地址操作致使系统内存数据损坏。此时需要提供重连机制,这样有问题的PCI设备就可以复位,并恢复到工作状态中。复位阶段的操作需要设备驱动和PCI控制器芯片之间协调配合进行。二、错误产生后需要做的事情错误产

2021-08-09 10:54:48 4599

原创 PCIe AER的INJECT机制

一、模块背景调试PCIe AER错误恢复代码非常困难,因为它很难触发真正的硬件错误。基于软件的错误注入可用于伪造各种PCIe错误。首先,应该在内核中启用PCIe AER软件错误注入配置,即以下应位于.config中的项目。CONFIG_PCIEAER_INJECT = y或CONFIG_PCIEAER_INJECT = m使用新内核重新启动或insmod模块后,名为设备文件/ dev / aer_inject 会被创建。然后,需要一个名为aer-inject的用户空间工具,该工具可以从此获取:g

2021-06-02 16:39:54 3755 3

原创 PCIe AER的驱动

不同的内核版本对PCIe的AER机制有微妙的差别,本次研究基于linux内核版本:4.9.190。驱动文件的目录:[drivers\pci\pcie\aer]、[drivers\pci\pcie]。PCIe AER的内核模块初始化的位置在[aerdrv.c]。驱动初始化入口:device_initcall(aer_service_init);在aer_service_init里首先要判断能否注册aer驱动。在pci_aer_available-> pci_msi_enabled检查msi中

2021-06-02 14:05:33 1384 1

原创 常用的Linux性能监控工具

Linux性能监控工具工具主要功能top提供运行系统的动态实时视图,显示系统摘要信息以及任务列表uptime显示系统平均负载ps、pstree提供当前进程列表free显示系统中空闲内存及已使用内存的数据mpstat报告处理器相关的统计数据vmstat报告进程、内存、磁盘、系统、CPU的统计信息iostat报告CPU统计数据,还...

2019-10-18 15:19:01 195

原创 移植Kdump至嵌入式ARM64环境

工欲善其事,必先利其器。操作系统崩溃是高级Linux运维工程师很头疼的事情,但也不要害怕,前辈们已经给我们磨了好多把刀,其中有一把叫做Kdump。目前在主流的Linux发行版如Ubuntu、Centos等已经默认安装或者仓库中含有工具包,但是经过裁剪的嵌入式Linux里面没有包含Kdump。本文章使用busybox建立最小文件系统,讲述移植Kdump至嵌入式ARM64的环境中。一、使用busyb...

2019-05-14 21:31:54 12367 3

空空如也

空空如也

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

TA关注的人

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