LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页

2019年4月19日

devmem读写物理内存和devkmem读取内核虚拟内存

摘要: 关键词:/dev/mem、/dev/kmem、mmap、__va、__pa、remap_pfn_range等等。 在日常工作中常有直接操作寄存器或者某一物理地址的需求,busybox中提供了devmem。通过它可以读写物理内存。 它的实现借助mmap和/dev/mem,通过mmap将/dev/mem 阅读全文

posted @ 2019-04-19 10:01 ArnoldLu 阅读(16772) 评论(0) 推荐(1)

2019年4月11日

warn_alloc():page allocation failure问题分析

摘要: 关键词:warn_alloc()、__GFP_XXX、order、CMA等等。 在内存申请的时候经常会遇到类似“ xxx: page allocation failure: order:10...”类型的问题,这是warn_alloc()的输出。 warn_alloc()被如下函数调用:__allo 阅读全文

posted @ 2019-04-11 17:24 ArnoldLu 阅读(9832) 评论(0) 推荐(1)

2019年4月3日

Busybox的syslogd认识与使用

摘要: 关键词:rcS、start-stop-daemon、syslogd、syslog()、klogd、klogctl()、syslog.conf、/dev/log、facility/level等等。 syslog用来记录应用程序或者硬件设备的日志;通过syslogd这个进程记录系统有关事件记录,也可以记 阅读全文

posted @ 2019-04-03 17:06 ArnoldLu 阅读(16196) 评论(0) 推荐(3)

2019年3月15日

使用sz/rz基于串口传输文件

摘要: 关键词:lrzsz、minicom、ZMODEM、MD5sum等。 在环境受限的嵌入式系统上,往往只有串口可以使用。 此时如果需要传输文件,需要借助rz/sz工具,可以使用的传输协议有ZMODEM、YMODEM、XMODEM,一般首选的是ZMODEM。 这里记录minicom下使用rz/sz进行文件 阅读全文

posted @ 2019-03-15 15:48 ArnoldLu 阅读(7252) 评论(0) 推荐(1)

2019年3月14日

Linux Hung Task分析

摘要: 关键词:khungtaskd、TASK_UNINTERRUPTIBLE、nvcsw、nivcsw、last_switch_count等等。 经常会遇到内核打印“INFO: task xxx:xxx blocked for more than 120 seconds.”这样的log信息,这是内核的hu 阅读全文

posted @ 2019-03-14 13:03 ArnoldLu 阅读(9932) 评论(0) 推荐(0)

2019年3月13日

Linux内存都去哪了:(1)分析memblock在启动过程中对内存的影响

摘要: 关键词:memblock、totalram_pages、meminfo、MemTotal、CMA等。 最近在做低成本方案,需要研究一整块RAM都用在哪里了? 最直观的的就是通过/proc/meminfo查看MemTotal,实际上可能远小于RAM物理大小。 这里有个明显的分界点:在free_init 阅读全文

posted @ 2019-03-13 21:45 ArnoldLu 阅读(11999) 评论(1) 推荐(2)

2019年2月11日

《Linux/UNIX系统编程手册》第63章 IO多路复用、信号驱动IO以及epoll

摘要: 关键词:fasync_helper、kill_async、sigsuspend、sigaction、fcntl、F_SETOWN_EX、F_SETSIG、select()、poll()、poll_wait()等。 《Linux/UNIX系统编程手册》第63章主要介绍了select()/poll()、 阅读全文

posted @ 2019-02-11 23:04 ArnoldLu 阅读(2399) 评论(0) 推荐(0)

2019年2月10日

Linux内核和用户空间通信之netlink

摘要: 1. netlink Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。 Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在Linu 阅读全文

posted @ 2019-02-10 00:00 ArnoldLu 阅读(18153) 评论(1) 推荐(5)

2019年1月31日

Linux soft lockup分析

摘要: 关键词:watchdog、soft lockup、percpu thread、lockdep等。 近日遇到一个soft lockup问题,打印类似“[ 56.032356] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [cat:153] 阅读全文

posted @ 2019-01-31 18:16 ArnoldLu 阅读(9646) 评论(0) 推荐(0)

2019年1月29日

一款DMA性能优化记录:异步传输和指定实时信号做async IO

摘要: 关键词:DMA、sync、async、SIGIO、F_SETSIG。 DMA本身用于减轻CPU负担,进行CPU off-load搬运工作。 在DMA驱动内部实现有同步和异步模式,异步模式使用dma_async_issue_pending(),然后在callback()中发送SIGIO信号,用户空间收 阅读全文

posted @ 2019-01-29 22:24 ArnoldLu 阅读(5196) 评论(1) 推荐(1)

Linux下时钟框架实践---一款芯片的时钟树配置

摘要: 关键词:时钟、PLL、Mux、Divider、Gate、clk_summary等。 时钟和电源是各种设备的基础设施,整个时钟框架可以抽象为几种基本的元器件:负责提供晶振 Linux内核提供了良好的CCF(Common Clock Framework),框架的两端一个是provider,一个是cons 阅读全文

posted @ 2019-01-29 22:15 ArnoldLu 阅读(8783) 评论(0) 推荐(2)

2019年1月17日

使用Kernel NetEm和tc模拟复杂网络环境

摘要: 关键词:netem(Network Emulator)、tc(Traffic Control)。 大部分局域网环境良好,但是产品实际网络环境可能千差万别,为了对产品进行各种情况测试就需要模拟网络环境。 Linux内核network模块提供了NetworkEmulator功能,结合iproute2的t 阅读全文

posted @ 2019-01-17 11:08 ArnoldLu 阅读(3076) 评论(0) 推荐(0)

2019年1月4日

使用Flame Graph进行系统性能分析

摘要: 关键词:Flame Graph、perf、perl。 FlameGraph是由BrendanGregg开发的一款开源可视化性能分析工具,形象的成为火焰图。 从底向上像火苗一样逐渐变小,也反映了相互之间的包含关系,下面的框条包含上面内容。 经过FlameGraph.git处理,最终生成矢量SVG图形, 阅读全文

posted @ 2019-01-04 23:32 ArnoldLu 阅读(9003) 评论(0) 推荐(2)

2019年1月3日

sigsuspend()阻塞:异步信号SIGIO为什么会被截胡?

摘要: 关键词:fcntl、fasync、signal、sigsuspend、pthread_sigmask、trace events。 此文主要是解决问题过程中的记录,内容有较多冗余。但也反映解决问题中用到的方法和思路。 简单的描述问题就是:snap线程在pthread_sigmask()和sigsusp 阅读全文

posted @ 2019-01-03 10:08 ArnoldLu 阅读(2272) 评论(1) 推荐(0)

2018年12月4日

ksar、sar及相关内核知识点解析

摘要: 关键词:sar、sadc、ksar、/proc/stat、/proc/cpuinfo、/proc/meminfo、/proc/diskstats。 在之前有简单介绍过sar/ksar,最近在使用中感觉需要再深入了解一下。 ksar/sar从内核采集数据,并输出可读性数据。分析相关源码,有助于知道数据 阅读全文

posted @ 2018-12-04 20:58 ArnoldLu 阅读(3315) 评论(0) 推荐(1)

2018年11月27日

Linux内存管理 (26)内存相关工具

摘要: 1. vmstat 参照《Linux CPU占用率监控工具小结-vmstat》 2. memstat memstat可以通过sudo apt install memstat安装,安装包括两个文件memstat和memstat.conf。 其中memstat.conf是memstat配置文件,指定me 阅读全文

posted @ 2018-11-27 18:00 ArnoldLu 阅读(2129) 评论(0) 推荐(0)

Linux内存管理 (25)内存sysfs节点解读

摘要: 1. General 1.1 /proc/meminfo /proc/meminfo是了解Linux系统内存使用状况主要接口,也是free等命令的数据来源。 下面是cat /proc/meminfo的一个实例。 MemTotal: 8054880 kB 物理内存总容量,对应totalram_page 阅读全文

posted @ 2018-11-27 17:00 ArnoldLu 阅读(9143) 评论(0) 推荐(1)

GIT归纳整理

摘要: 1. 将repo_a的分支提交到repo_b分支 repo_a:表示原始git库地址;repo_b:表示新增的git库地址。 git remote add new_remote repo_b:new_remote 是repo_b在repo_a中的别名。为本地repo_a新建remote名称,也即另一 阅读全文

posted @ 2018-11-27 10:20 ArnoldLu 阅读(487) 评论(0) 推荐(0)

AT24 I2C EEPROM解析及测试

摘要: 关键词:AT24、I2C、nvmem、EEPROM。 1. AT24C介绍 AT24C是一款采用I2C通信的EEPROM,相关驱动涉及到I2C和nvmem。 I2C是读写数据的通道,nvmem将AT24C注册为nvmem设备。 2.源码分析 2.1 DTS at24是挂在i2c总线下的设备,硬件接到 阅读全文

posted @ 2018-11-27 10:13 ArnoldLu 阅读(5899) 评论(0) 推荐(0)

2018年10月28日

Linux启动时间优化-内核和用户空间启动优化实践

摘要: 关键词:initcall、bootgraph.py、bootchartd、pybootchart等。 启动时间的优化,分为两大部分,分别是内核部分和用户空间两大部分。 从内核timestamp 0.000000作为内核启动起点,到free_initmem()输出"Freeing init memor 阅读全文

posted @ 2018-10-28 11:45 ArnoldLu 阅读(7720) 评论(0) 推荐(1)

Linux kprobe调试技术使用

摘要: kprobe调试技术是为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。 利用kprobe技术,可以在内核绝大多数函数中动态插入探测点,收集调试状态所需信息而基本不影响原有执行流程。 kprobe提供三种探测手段:kprobe、jprobe和kretprobe,其中jprobe和kretp 阅读全文

posted @ 2018-10-28 11:31 ArnoldLu 阅读(22734) 评论(1) 推荐(4)

2018年9月25日

buildroot使用介绍

摘要: buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包 阅读全文

posted @ 2018-09-25 08:35 ArnoldLu 阅读(94009) 评论(8) 推荐(9)

2018年9月23日

Buildroot+ARM+QEMU:搭建ARM-Linux虚拟开发环境

摘要: 1. 配置工作环境 sudo apt install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev exuberant-ctags g++ texinfo patch vim libtoo 阅读全文

posted @ 2018-09-23 14:57 ArnoldLu 阅读(14737) 评论(0) 推荐(0)

2018年9月16日

GDB(The GNU Project Debugger)的基本使用方法

摘要: 关键词:GDB。 GDB调试的三种方式: 1. 目标板直接使用GDB进行调试。 2. 目标板使用gdbserver,主机使用xxx-linux-gdb作为客户端。 3. 目标板使用ulimit -c unlimited,生成core文件;然后主机使用xxx-linux-gdb ./test ./co 阅读全文

posted @ 2018-09-16 22:45 ArnoldLu 阅读(118774) 评论(0) 推荐(8)

2018年9月15日

Debug Hacks中文版——深入调试的技术和工具

摘要: 关键词:gdb、strace、kprobe、uprobe、objdump、meminfo、valgrind、backtrace等。 《Debugs Hacks中文版——深入调试的技术和工具》这本书是Miracle Linux一些同事合作,主要关注Linux下的调试技术和工具。 本文章以此书为蓝本进行 阅读全文

posted @ 2018-09-15 09:07 ArnoldLu 阅读(4796) 评论(0) 推荐(0)

2018年8月13日

Linux死锁检测-Lockdep

摘要: 关键词:LockDep、spinlock、mutex。 lockdep是内核提供协助发现死锁问题的功能。 本文首先介绍何为lockdep,然后如何在内核使能lockdep,并简单分析内核lockdep相关代码。 最后构造不同死锁用例,并分析如何根据lockdep输出发现问题根源。 1. Lockde 阅读全文

posted @ 2018-08-13 22:35 ArnoldLu 阅读(28115) 评论(0) 推荐(2)

Linux CPU占用率监控工具小结

摘要: 关键词:top、perf、sar、ksar、mpstat、uptime、vmstat、pidstat、time、cpustat、munin、htop、glances、atop、nmon、pcp-gui、collectl。 1. top top是最常用的查看系统资源使用情况的工具,包括CPU、内存等等 阅读全文

posted @ 2018-08-13 17:16 ArnoldLu 阅读(81815) 评论(1) 推荐(5)

2018年8月12日

Linux进程管理 (篇外)内核线程简要介绍

摘要: 关键词:kthread、irq、ksoftirqd、kworker、workqueues 在使用ps查看线程的时候,会有不少[...]名称的线程,这些有别于其它线程,都是内核线程。 其中多数内核线程从名称看,就知道其主要功能。 比如给中断线程化使用的irq内核线程,软中断使用的内核线程ksoftir 阅读全文

posted @ 2018-08-12 23:09 ArnoldLu 阅读(15320) 评论(0) 推荐(0)

2018年8月11日

Linux进程管理 (7)实时调度

摘要: 关键词:RT、preempt_count、RT patch。 除了CFS调度器之外,还包括重要的实时调度器,有两种RR和FIFO调度策略。本章只是一个简单的介绍。 更详细的介绍参考《Linux进程管理 (9)实时调度类分析,以及FIFO和RR对比实验》。 同时为了提高Linux的实时性,Linux社 阅读全文

posted @ 2018-08-11 20:32 ArnoldLu 阅读(3995) 评论(0) 推荐(0)

2018年7月29日

Linux内存管理 一个进程究竟占用多少空间?-VSS/RSS/PSS/USS

摘要: 关键词:VSS、RSS、PSS、USS、_mapcount、pte_present、mem_size_stats。 在Linux里面,一个进程占用的内存有不同种说法,可以是VSS/RSS/PSS/USS四种形式,这四种形式首字母分别是Virtual/Resident/Proportional/Uni 阅读全文

posted @ 2018-07-29 17:44 ArnoldLu 阅读(12302) 评论(0) 推荐(0)

2018年7月27日

Linux内存管理 (9)mmap(补充)

摘要: 之前写过一篇简单的介绍mmap()/munmap()的文章《Linux内存管理 (9)mmap》,比较单薄,这里详细的梳理一下。 从常用的使用者角度介绍两个函数的使用;然后重点是分析内核的实现流程;最后对mmap()/munmap()进行一些验证测试。 mmap系统调用并不完全是为了共享内存而设计的 阅读全文

posted @ 2018-07-27 22:51 ArnoldLu 阅读(15281) 评论(0) 推荐(0)

2018年7月7日

Linux并发与同步专题 (4) Mutex互斥量

摘要: 关键词:mutex、MCS、OSQ。 《Linux并发与同步专题 (1)原子操作和内存屏障》 《Linux并发与同步专题 (2)spinlock》 《Linux并发与同步专题 (3) 信号量》 《Linux并发与同步专题 (4) Mutex互斥量》 《Linux并发与同步专题 (5) 读写锁》 《L 阅读全文

posted @ 2018-07-07 16:00 ArnoldLu 阅读(3502) 评论(0) 推荐(0)

Linux并发与同步专题 (3) 信号量

摘要: 关键词:Semaphore、down()/up()。 《Linux并发与同步专题 (1)原子操作和内存屏障》 《Linux并发与同步专题 (2)spinlock》 《Linux并发与同步专题 (3) 信号量》 《Linux并发与同步专题 (4) Mutex互斥量》 《Linux并发与同步专题 (5) 阅读全文

posted @ 2018-07-07 15:00 ArnoldLu 阅读(1767) 评论(0) 推荐(0)

Linux并发与同步专题 (2)spinlock

摘要: 关键词:wfe、FIFO ticket-based、spin_lock/spin_trylock/spin_unlock、spin_lock_irq/spin_lock_bh/spin_lock_irqsave。 《Linux并发与同步专题 (1)原子操作和内存屏障》 《Linux并发与同步专题 ( 阅读全文

posted @ 2018-07-07 14:00 ArnoldLu 阅读(3643) 评论(0) 推荐(2)

Linux并发与同步专题 (1)原子操作和内存屏障

摘要: 关键词:。 《Linux并发与同步专题 (1)原子操作和内存屏障》 《Linux并发与同步专题 (2)spinlock》 《Linux并发与同步专题 (3) 信号量》 《Linux并发与同步专题 (4) Mutex互斥量》 《Linux并发与同步专题 (5) 读写锁》 《Linux并发与同步专题 ( 阅读全文

posted @ 2018-07-07 13:00 ArnoldLu 阅读(4021) 评论(0) 推荐(0)

Linux并发与同步专题

摘要: 并发访问:多个内核路径同时访问和操作数据,就有可能发生相互覆盖共享数据的情况,造成被访问数据的不一致。 临界区:访问和操作共享数据的代码段。 并发源:访问临界区的执行线程或代码路径。 在内核中产生并发访问的主要有如下4种: 中断和异常:中断发生后,中断处理程序和被中断的进程之间有可能产生并发访问。中 阅读全文

posted @ 2018-07-07 12:00 ArnoldLu 阅读(921) 评论(0) 推荐(0)

2018年7月1日

功耗案例分析:周期性底电流抬高问题分析和解决

摘要: 最近遇到一个间歇性底电流抬高的问题,没有其他提示。 刚开始发现有周期性问题,准备分析中断以及timer,看看能否找到线索。 结果timer数据量太大,timer多,timer超时记录更多;中断也看的云里雾里的。 然后想了一下去看看调度的规律是否能找到问题的根源。 下面就是记录分析的过程。 1. 底电 阅读全文

posted @ 2018-07-01 22:00 ArnoldLu 阅读(1142) 评论(0) 推荐(0)

2018年6月23日

Ubuntu使用小技巧

摘要: 1. Ubuntu下自由截图 Ubuntu下使用PrintScreen按键可以截取整个屏幕,但是很多时候并不需要那么多内容,还需要对图片进行编辑。 这时候就需要截图时,有矩形选择,更符合要求。 进入System Settings...->Keyboard->Shortcuts,然后选择Custom 阅读全文

posted @ 2018-06-23 22:26 ArnoldLu 阅读(760) 评论(0) 推荐(0)

2018年6月12日

Linux进程管理 (2)CFS调度器

摘要: 关键词: 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 Linux进程管理 (5)NUMA调度器 Linux进程管理 (6)EAS绿色节能调度器 Linux进程管理 (7)实时调 阅读全文

posted @ 2018-06-12 21:00 ArnoldLu 阅读(6822) 评论(0) 推荐(1)

2018年5月30日

Linux IO性能分析blktrace/blk跟踪器

摘要: 关键词:blktrace、blk tracer、blkparse、block traceevents、BIO。 本章只做一个记录,关于优化Block层IO性能方法工具。 对Block层没有详细分析,对工作的使用和结果分析也没有展开。 如果有合适的机会补充。 1. blktrace介绍 如下图可知整个 阅读全文

posted @ 2018-05-30 08:51 ArnoldLu 阅读(18610) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页

导航