MPSOC ZCU102 petalinux环境搭建问题记录

最近在研究MPSOC,搭建参考:ug1144-petalinux-tools-reference-guide.pdf,个人用的Ubuntu18.10,虚拟机。 1. Ubuntu下/bin/sh用的是dash,记得把使用sudo dpkg-reconfigure dash切换为bash. 2....

2019-03-23 08:42:47

阅读数 103

评论数 0

TREE RCU个人理解【待补充】

有待补充

2019-01-05 12:30:19

阅读数 70

评论数 2

The design of preemptible read-copy-update【待翻译】

https://lwn.net/Articles/253651/ 待翻译  

2019-01-05 12:27:49

阅读数 126

评论数 0

基于kernel2.5.43对第一版经典RCU实现的思考

最近在研究RCU机制,想从RCU的历史源头开始深入理解(追溯根源会有意想不到的收获,至少可以从代码演进过程中领略大牛们的思想)。 想到这里,网上也有很多和我一样想法的人士,特别感谢这篇文章: http://www.wowotech.net/kernel_synchronization/Linu...

2019-01-05 10:57:14

阅读数 67

评论数 0

printk一些优化想法——增加核号打印(有缺陷)

故障定位过程中发现多个核调用printk时,很难直观的看到每一行是哪个核打印的。 因此想能不能在每行前增加核号打印"[x]",试了半天,在vprintk_emit里尝试增加this_cpu的字符串转换。 效果是有的,但是有些缺陷。因为text的前两个字符时是...

2018-12-05 21:25:45

阅读数 78

评论数 0

内核小技巧——强制设置进程运行核 select_task_rq

故障定位过程中,业务进程没有做核绑定,导致每次都是通过负载均衡动态选择运行核, 导致很多时候业务进程出现在核0上死循环(系统态),串口都没反应。 由于是第三方负责启动,无法通过taskset命令指定核号启动。不过我们知道执行进程的ELF名字,因此想到是否可以通过内核强制设置进程运行核号。 关...

2018-12-05 21:06:29

阅读数 104

评论数 0

基于PPC64架构 Linux 内核信号处理过程栈处理分析

handle_rt_signal64主要负责信号处理栈处理分析,如下图所示 int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) { struct rt_sigframe __use...

2018-12-04 23:34:55

阅读数 84

评论数 0

DPDK17.05 第一次试用心得与问题记录

最近由于优化性能需求,特意了解dpdk-17.05。在虚拟机上第一次安装试用,发现还是有很多坑哈。 下载地址不说了,度娘一下吧。 记录一下问题吧: 1. 首先虚拟机要配置两个网卡以上,而且必须都是host-only模式。我配置了三个网卡,一个NAT模式,另外两个host-only。 结果悲...

2017-06-15 21:36:03

阅读数 1694

评论数 4

关闭L2 cache的方法

最近在powerpc b4860上测试,需要关闭L2 cache,发现系统启动过程怎么设置都不行,一旦设置系统就会启动异常。 突然想起,有没有可能是U-Boot阶段L2 cache已经在使用,这时候再关闭已经来不及啦。 因此,在UBoot阶段,先flush+无效L2 cache,再关闭L2 c...

2017-04-23 16:34:46

阅读数 1031

评论数 0

make menuconfig关闭imx6q开发板的L1 cache/L2 cache

最近在做一些cache测试,需要关闭L1/L2 cache。ARM的内核关于cache的配置做得比较完善,可以通过menuconfig配置。 System Type-》Disable I-Cache  //L1 I-cache System Type-》Disable D-Cache //...

2017-04-19 21:25:09

阅读数 980

评论数 0

imx6q ARM cotex-A9 参考手册

最近在研究imx6q这款ARM的PMU,cache等,遇到了一些问题。 也找到很多参考手册,特别是DDI0406C_C_arm_architecture_reference_manual.pdf 这个详细介绍cotex-A9的体系架构。 64位ARM芯片使用v8体系架构,参考文档:DEN00...

2017-04-19 21:16:23

阅读数 2310

评论数 0

lmbench3 lat_mem_rd的测试结果记录

默认情况下,L1 cache/L2cache都打开: / # lat_mem_rd 128M "stride=128 0.00049 4.019 0.00098 4.019 0.00195 4.019 0.00293 4.019 0.00391 4.019 0.005...

2017-04-19 21:11:14

阅读数 1225

评论数 0

解决perf在imx6q上读写PMU event counter都是零

最近在用perf分析性能,在imx6q上验证PMU event采样,发现cache-misses等硬件事件计数都是0,瞬间崩溃。 傻乎乎分析啦perf代码,感觉应该不是perf代码原因,到freescale官网上找到一片类似的问题: https://community.nxp.com/thread...

2017-04-19 21:00:37

阅读数 1086

评论数 1

lmbench3 完整移植

首先,下载一份源代码:http://www.bitmover.com/lmbench/get_lmbench.html 然后解压。 export PATH=$PATH:/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-20...

2017-04-19 20:44:58

阅读数 1204

评论数 0

perf 移植心得

从以下地址成功移植了perf,谢谢tony-liu。 转载地址:http://www.cnblogs.com/helloworldtoyou/p/5585152.html 更正了一些内容,主要是zlib编译交叉工具链 zlib编译与安装 ./configure --prefix=$CR...

2017-04-09 18:57:12

阅读数 1323

评论数 0

iperf-2.0.5移植到IMX6DQRM的linux-3.0.35

首先导出交叉编译链的路径: export PATH=$PATH:/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/ 切换到iperf-2.0.5的主目...

2017-03-16 22:03:17

阅读数 775

评论数 0

ARM 全局页表与二级页表转换调试

最近在看ARM的内存管理,刚好看到全局页表swapper_pg_dir,看了很久细想能否直接通过查看内存方式查看swapper_pg_dir的内存: 幸好之前弄过/dev/mem,知道可以把物理内存映射出来。 先贴工具代码: #include #include #include ...

2016-08-19 20:33:03

阅读数 1361

评论数 0

alloc_node_mem_map的offset作用

看这个函数过程中看到pgdat->node_mem_map = map + offset;这个为什么加offset呢? 原来是计算本节点的mem_map数组的size的时候,start对齐到~(MAX_ORDER_NR_PAGES - 1),无形中在开头和结尾增加了mem_map的大小, ...

2016-08-07 15:42:32

阅读数 710

评论数 0

ramdisk制作过程记录

一. ramdisk.gz.uboot自作过程: 1. 创建一个loop目录,作为挂载点: mkdir loop 2. 获取一个10M的镜像,count会在kernel配置中使用: dd if=/dev/zero of=ramdisk bs=1k count=10240 3. 格式化为ext2:...

2016-06-19 17:42:47

阅读数 3114

评论数 0

通过/dev/mem实现用户层访问GPIO寄存器

由于工作需要用到GPIO设置成中断模式,但是不知道连线是否已经连接到指定的GPIO引脚, 而且配置是否成功,因此通过/dev/mem来查看GPIO的配置是否成功是必须的。 记录一下: #include #include #include #include #include ...

2015-08-30 17:04:21

阅读数 1354

评论数 0

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