自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [linux kernel]semaphore信号量的用法

if (likely(list_empty(&sem->wait_list)))///< 如果链表为空,表示没有人等待信号量,直接++struct list_head wait_list;--->信号量等待链表。///< 信号量增加。else///< 小于等于0。else///< 否则。

2023-08-19 11:51:59 199

原创 pcie的PM和ASPM

2. ASPM中的L0,L0s, L1,L2, L1 substate, L3, Ldn状态的介绍。1. PCI-PM中D0,D1,D2,D3hot, D3cold的介绍。最近工作原因,了解了PCIE协议的PM和ASPM机制。5. 系统suspend/resume的流程。3. PM capability寄存器管理。4. 内核关于PM,ASPM,的用法。有时间准备好文档,再进行填充。

2023-07-06 17:53:35 473 1

原创 sas协议-SSP状态机-SSP_RF/SSP_TAN/SSP_RIM

SSP_RF状态机的主要功能是1. 接收Frame2. 检查接收到的Frame是否有error,接收或者丢弃3. 确定是否要发ACK或者NAK4. 向PL_PM发送接收到帧的确认回执;交互的状态机有:PL_PM SSP_RCM SSP_RIM SSP_TANSSP_TAN (transmit ACK/NAK control) state machine这个状态机主要功能是,在收到了帧收到的消息之后,确定传送ACK或者NAK;...

2021-12-16 15:41:00 327

原创 sas协议-port layer-PL_PM

PL_PM maintain timer timer SSP I SSP T STP I STP T SMP I SMP T Maximum Connect Time Limit timer(may) may shall may shall shall Bus Inactivity Time Limit timer (may) shall shall Arb...

2021-12-16 14:26:14 189

原创 sas协议-phy layer-phy reset sequence

本文讲述一下sas协议中,phy layer关于OOB以及速度协商的部分,主要讲述的是sas-sas 场景;sas-sata场景,sata-sata场景以后再做专题讲述;如下两个图,是本文要重点讲述的图;我画了一个phyA和phyB的链接图;sas是一个全双工通信,每个phy都有一个tx差分对和rx差分对;phy reset的几个阶段如下:step#11. phyA上电以后,开始有节奏的发送OOB信号COMINIT, 每发完一个OOB,等待500ms(..

2021-12-16 09:54:59 3256

原创 sas协议-XL状态机3-PS

XL状态机中与PS有关的两个状态为:XL11:PS_RequestXL12: PS_Quiet与之相关的原语有:PS_REQ/PS_ACK/PS_NAK这两个状态时用来管理phy自己以及attached上的phy的电源消耗;在sas协议里,phy的低电状态有两种:Partial和Slumber以此图为例phy8的attached phy是phy4phy4的attached phy是phy8.PS_Request: 该状态主要是指使at...

2021-12-15 16:44:41 214

原创 sas协议-XL状态机3

本文着重理解XL状态机的状态:Open_Response_Wait参考:6.19.8 XL6:Open_Response_Wait state这个状态来源于Forward_Open. 发送完OPAF之后,进入该状态;该状态主要是等待OPAF的反馈,并根据反馈,采取不同的action.response类型如下:response分类 response XL receiver(message) 说明 Open Accept OPEN_ACCEPT Received

2021-12-15 16:23:15 591

原创 sas协议-XL状态机2

本文讲述HBA是怎么打开一个链路的过程,我画了一个图,如下,后面会根据该图进行XL状态机进行理解;1. 相连的phy之间进行速度协商,IDAF交换之后,收到link ready的信号,均处于Idle的状态;在这个状态下,phy向ECM一直重复发送Idle request.2. 当HBA发送OPAF给phy0后,phy0的状态转换为Idle-->Request_Path3. phy0(XL:Request_Path)在该状态时,向ECM发送request path的请求,ECM查找.

2021-12-15 15:21:13 695

原创 sas协议-XL理解

sas协议

2021-12-15 11:05:32 706

原创 清理C盘

C盘,属性,磁盘清理C:\Windows\SoftwareDistribution\Download 下的文件全部删除C:\Windows\Temp 全部清理执行wicleanup

2020-10-09 11:28:04 69

原创 linux内核-pci_alloc_consistent的理解

先留着

2020-09-29 11:10:39 995

原创 INIT_WORK的暂时理解

<br />/**<br /> * _scsih_fw_event_add - insert and queue up fw_event<br /> * @ioc: per adapter object<br /> * @fw_event: object describing the event<br /> * Context: This function will acquire ioc->fw_event_lock.<br /> *<br /> * This adds the firmware even

2011-05-22 12:53:00 1112

原创 insmod 模块的时候出现的问题

<br />当我insmod mpt2sas.ko的时候,报出的错误为:<br />unknow symol ....<br />百思不得其解,后来问了pei姐姐,得知问题所在。<br />原来是:<br />在insmod 一个模块的时候,一定要看下模块信息。<br />modinfo xx.ko<br />查看下模块的依赖关系。<br />用lsmod  |grep ** 来查看是否所依赖的模块都有安装上去

2011-05-18 10:54:00 639

原创 转:data alignment的作用

<br />研究的起源:研究DMA支援的一个特点就是byte alignment的作用,老大上次特别提出,还是好好研究一番,这个资料挺有意思。<br /><br /><br /><br />Data alignment: Straighten up and fly right  Data alignment: Straighten up and fly right<br />Align your data for speed and correctness<br />Memory access granul

2011-01-21 16:35:00 2608

原创 脚本里的一个新发现

<br />今天帮77验证一个问题,关于脚本里的注释。<br />一般在bash脚本里,一句话加上#的话 ,就相当于,这句话无效<br />譬如:<br /> <br />wangtt=wangttaaaaa<br />echo $wangtt<br /> <br />这样的话, 就会打印出 wangttaaaaa<br /> 如果 <br />wangtt=wangttaaaaa bbbb<br />的话,<br />打印结果为: wangttaaaaa<br />而不是wangttaaaaaabbbb<

2011-01-19 18:02:00 388

原创 查看文件的不同diff

<br />diff file1 file2<br /> <br />可以查看文件是否相同。<br />如果相同, 返回NULL<br />如果不同, 返回不同部分

2010-12-15 11:22:00 436

原创 语言学习 之 perl语言

<br />今天学习简单的打印。<br /> <br />列表与数组:<br />一、列表<br />  列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:()。<br />  注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值。<br />  列表例:<br />    (17, $var, "a string")<br />    (17, 26 << 2)<br />    (

2010-12-14 18:13:00 292

原创 创建swap分区 并开启Swap

<br />只写下我工作中遇到的,呵呵,好喜欢。<br />谢谢zengc.<br />mkdir swapfile<br />dd if=/dev/zero of=/swapfile/swapfile_kdump bs=1M count=128<br />mkswap /swapfile/swapfile_kdump <br />swapon /swapfile/swapfile_kdump <br /> <br />这样就创建了128M 的 swap文件。

2010-12-14 17:34:00 528

原创 shell 语言学习

<br />wc -l file  ---计算文件行数<br />wc -w file  ---计算文件单词数<br />wc -c file  ---计算文件中的字符数<br />grep 'pattern' file ----在文件中搜索字符串“pattern”<br />  通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。 <br />[ -d DIR ]  如果DIR存在并且是一个目录则为真<br />[ -f file ]  如果file存在并且是一个普通文件则为真<

2010-12-09 17:47:00 300

原创 设置IP

<br />首先用ethtool eth<number> 查看哪个端口开着。<br />比如: ethtool eth0<br />           ethtool eth1<br />linux-d109:/ # ethtool eth0<br />Settings for eth0:<br />Cannot get device settings: No such device<br />Cannot get wake-on-lan settings: No such device<br />Can

2010-12-08 18:38:00 1737

原创 initrd文件的解开与压缩方式

<br />还是我自己比较常用并且很喜欢的方法。呵呵。<br /> <br />linux-d109:/home # mkdir wangtt<br />linux-d109:/home # cd wangtt/<br />linux-d109:/home/wangtt # cp /boot/initrd-2.6.27.19-5-default .<br />linux-d109:/home/wangtt # ls<br />initrd-2.6.27.19-5-default<br />linux-d10

2010-12-08 16:46:00 744

原创 压缩与解压命令

这个方式是我最喜欢用的。呵呵当然,也有别的用法。比如: /home/wangtt/wangtt.c我想压缩 wangtt 这个目录linux-d109:/home # lsbuild  dead.ko  source  wangttlinux-d109:/home # tar zcf wangtt.tar.gz wangtt/linux-d109:/home # lsbuild  dead.ko  source  wangtt  wangtt.tar.gz解开这个压缩:linux-d109:/home #

2010-12-08 16:38:00 475

原创 转:查看内核版本命令

<br />今天飞飞问我怎么查看一个系统的版本是suse的还是fedro的。<br />我只知道 uname -a<br />然后问了下百度 , 得出以下答案。<br />http://zhidao.baidu.com/question/148159413.html<br /> <br />告诉飞飞:cat /proc/version 解决了他的问题。哈哈哈哈哈<br /> <br /> <br />1. 查看内核版本命令: <br /><br />  1) [root@q1test01 ~]# cat /

2010-12-08 10:26:00 1410

原创 需要确认的问题

<br />一。 通道一次能处理多少数据。<br />应该是由xfercap_log 这个变量来确定的。<br /> * @xfercap_log; log2 of channel max transfer length (for fast division)<br />可是 max transfer length是由谁来确定的捏?是哪个人悄悄的设置了这个变量?????<br />找到根据啦!哈哈<br />代码:<br />是在 ioat2_enumerate_channels 阶段来做的。原来初始化真有

2010-12-01 17:12:00 331

原创 几个不懂的函数,有待解决

<br />hw = pci_pool_alloc(dma->dma_pool, flags, &phys);<br /> <br />疑问:这个函数是申请pci缓冲池麽?  从字面意思看好像是的。<br />         怎么申请的呢? dma->dma_pool 是一个pci_pool的结构体, phys 是一个dma_addr_t 的结构体, 是一个地址。<br />         难道是说,难道是。。。哎,不懂, 还是查明了再说吧。<br />对应的函数是: pci_pool_free.<br

2010-12-01 16:36:00 383

原创 解读函数 alloc channel source

/* ioat2_alloc_chan_resources - allocate/initialize ioat2 descriptor ring * @chan: channel to be initialized */int ioat2_alloc_chan_resources(struct dma_chan *c){ struct ioat2_dma_chan *ioat = to_ioat2_chan(c); struct ioat_chan_common *chan = &ioat->base; 

2010-12-01 16:14:00 675

原创 摘抄

<br />这个世界,并不是非黑即白,更广漠的,是中间地带。那些立场坚定的黑白论者,立在原地评是论非,全然不顾自己脚下是虚空。那些走向中间地带的人,用自己的脚一步步丈量,越行越远。那些是非论者并不知道,有些人,看到的风景已经与他们不一样。

2010-12-01 15:56:00 240

原创 转:另类数独知多少

<br /><br />http://jandan.net/2008/07/27/special-sudoku-1.html<br /> <br />原来数独有这么多种类, 看来自己真的是井底之蛙了。 另类数独知多少 - 上篇<br />© sfufoet / 2008.07.27 / 6:30 pm / 12,460 pv <br /><br />最近迷上数独了。搜索了一下,发现一些另类的数独。以前我总以为,数独有什么好玩,不就是一个简单的逻辑推理游戏嘛。最近在 ubuntu 下,不小心玩了数独。就彻底迷

2010-11-29 14:58:00 666

原创 哎呀呀,我也有自己的CSDN博客了

<br />哎呀呀。<br />啊哈哈<br />哈哈。<br />我以后会在这里写下我的工作心得体会。<br />以及工作中遇到的问题。<br />加油!

2010-11-26 16:38:00 239

空空如也

空空如也

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

TA关注的人

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