<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dachai的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dachai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dachai]]></copyright><item><title><![CDATA[cpuidle framework in Linux Kernel（1）概述]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/90214617</link><guid>https://blog.youkuaiyun.com/dachai/article/details/90214617</guid><author>dachai</author><pubDate>Mon, 01 Nov 2021 13:55:11 +0800</pubDate><description><![CDATA[本文是在参考了多位大神文章的基础上，结合自己对Linux kernel cpuidle 相关code以及ACPI spec的理解形成的，记录在这里，以期不断地迭代修正。
cpuidle 相关的文章分XX部分，旨在解决以下几个问题：
1）why to idle？
2）what’s idle state?
3）when to idle？
4）which idle state to enter？
5）h...]]></description><category></category></item><item><title><![CDATA[儿童思维成长]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/110532662</link><guid>https://blog.youkuaiyun.com/dachai/article/details/110532662</guid><author>dachai</author><pubDate>Thu, 03 Dec 2020 15:12:10 +0800</pubDate><description><![CDATA[儿童理解的发生是一个抽象思维逐级提高再统合应用的过程。
整个过程分为5个层级，即思维五阶层，每一低阶思维时后续高阶思维的基础。

1、图像思维
 听故事，在脑海中形成画面，不断积累图像素材，这是大脑成长的[资料库]。
 大脑的图像思维越强大、越丰富、越精密，其抽象能力的基础就越好。
2、图形思维
 从动态场景中抽取关键画面，生发理解；
 通过图片之间的次序、因果、条件等各种关系发生理解。
 
3、结构思维
 是抽象思维更高一阶的晋级。
 它是框架式、系统式的，有了它...]]></description><category></category></item><item><title><![CDATA[delay/sleep mechanisms in  Linux kernel ]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/109510790</link><guid>https://blog.youkuaiyun.com/dachai/article/details/109510790</guid><author>dachai</author><pubDate>Mon, 16 Nov 2020 19:09:51 +0800</pubDate><description><![CDATA[linux中的延时函数

一、linux userspace

/usr/bin/sleep

man sleep可以看到，sleep：delay for a specified amount of time;

 sleep NUMBER[SUFFIX]        //这里的SUFFIX后缀可以是‘s’ for seconds (default), 'm' for minutes；

使用strace查看sleep的执行过程中的系统调用；

#strace -o sleep...]]></description><category></category></item><item><title><![CDATA[git log commit 中的小趣味——打地鼠]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/109361140</link><guid>https://blog.youkuaiyun.com/dachai/article/details/109361140</guid><author>dachai</author><pubDate>Thu, 29 Oct 2020 15:33:42 +0800</pubDate><description><![CDATA[最近真的有在努力工作了，居然能从Linux kernel git commit中发现很多让人莞尔的小乐趣。

今天在看S2I过程中对timer interrupt处理的一个change时，在commit中发现一个短语“whack-a-mole”，辞典一查，才知道是“打地鼠”的意思，就觉得好形象啊，看到它，脑海中立即浮现出打地鼠游戏时，那种按下葫芦起来瓢的场景，非常有画面感了。

我还在读研究生的时候，室友就送了一个小小钥匙链大小的打地鼠的玩具，我经常在脑子卡壳的时候，拿出来，乒乒乓乓地一顿打，倒是挺解压的。]]></description><category></category></item><item><title><![CDATA[女儿两岁半——爸爸的事情做不做呢？]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/109204901</link><guid>https://blog.youkuaiyun.com/dachai/article/details/109204901</guid><author>dachai</author><pubDate>Wed, 21 Oct 2020 16:53:51 +0800</pubDate><description><![CDATA[十一在家时，给两岁半的女儿洗脑“自己的事情自己做，妈妈的事情帮着做，爸爸的事情不要做。”

爸爸在旁边听着直邹眉头，说我离间父女感情。

女儿学得活灵活现，并且加上了自己的发挥。

爸爸陪她疯玩时，她会说“爸爸的事情也要做。”

爸爸跟她抢零食吃时，她会说“爸爸的事情不要做。”


...]]></description><category></category></item><item><title><![CDATA[使用dynamic debug帮助调试]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/103807529</link><guid>https://blog.youkuaiyun.com/dachai/article/details/103807529</guid><author>dachai</author><pubDate>Mon, 29 Jun 2020 19:11:30 +0800</pubDate><description><![CDATA[dynamic debug

参考文件 Documentation/admin-guide/dynamic-debug-howto.rst

kernel configuration：

1）在编译时

修改关心模块目录下的Makefile文件，对指定文件/模块打开dynamic debug

ccflags-y += -DDEBUG

比如我们想要打开arch/x86/kernel/smpboo...]]></description><category></category></item><item><title><![CDATA[使用coredump帮助解决segmentation fault的问题]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/103808004</link><guid>https://blog.youkuaiyun.com/dachai/article/details/103808004</guid><author>dachai</author><pubDate>Thu, 11 Jun 2020 12:04:37 +0800</pubDate><description><![CDATA[打开coredump

sysctl kernel

修改coredump文件存放的位置

默认放在哪里？


]]></description><category></category></item><item><title><![CDATA[kernel编译时出现的Waring Clock skew detected. Your build may be incomplete]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/104915743</link><guid>https://blog.youkuaiyun.com/dachai/article/details/104915743</guid><author>dachai</author><pubDate>Wed, 18 Mar 2020 08:17:29 +0800</pubDate><description><![CDATA[开机时，发现系统时间不对。

使用以下命令或是直接在setting中修正系统时间

#date -s 2020-03-17

#date -s 10:22:53

修正了系统时间之后，在编译linux kernel时，出现了以下warning:

make[1]: Waring Clock skew detected. Your build may be incomplete

Warning f...]]></description><category></category></item><item><title><![CDATA[swapfile和hibernation-restore用的swap partition]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/103960073</link><guid>https://blog.youkuaiyun.com/dachai/article/details/103960073</guid><author>dachai</author><pubDate>Mon, 13 Jan 2020 18:57:47 +0800</pubDate><description><![CDATA[在较新的Ubuntu release版中（Ubuntu1804），默认使用swapfile作为swap space，

那什么是swapfile，它和传统的swap partition有什么区别呢？为什么以及如何使用swapfile？在使用时哪些限制呢？我们一一来介绍一下。

安装过系统的同学都知道，在安装过程中有一步是设置SWAP分区，它是从hard disk中分出的一块，大小一般要大于phys...]]></description><category></category></item><item><title><![CDATA[system suspend/resume过程中的异步操作pm_async]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/103805313</link><guid>https://blog.youkuaiyun.com/dachai/article/details/103805313</guid><author>dachai</author><pubDate>Tue, 07 Jan 2020 09:18:06 +0800</pubDate><description><![CDATA[在使用sleepgraph分析并优化suspend/resume flow一节https://blog.youkuaiyun.com/dachai/article/details/103785380，我们看到，把scsi_scan_type从”sync”改成”async”之后，resume latency大大降低，能够有效提升suspend/resume效率。

其实，除了这个，还有一个global的pm_a...]]></description><category></category></item><item><title><![CDATA[使用sleepgraph工具分析并优化suspend/resume流程]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/103785380</link><guid>https://blog.youkuaiyun.com/dachai/article/details/103785380</guid><author>dachai</author><pubDate>Tue, 31 Dec 2019 17:41:42 +0800</pubDate><description><![CDATA[sleepgraph是pm-graph工具中的一个，pm-gragph（https://01.org/zh/pm-graph?langredirect=1）提供了bootgraph和sleepgraph，帮助OS developer分析boot和suspend/resume过程，找到影响系统启动或休眠效率的瓶颈。我们今天来介绍一下sleepgraph工具。

sleepgraph会发起一个susp...]]></description><category></category></item><item><title><![CDATA[x86上 /proc/cpuinfo中的cpufreq和scaling_cur_freq怎么算]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/103475484</link><guid>https://blog.youkuaiyun.com/dachai/article/details/103475484</guid><author>dachai</author><pubDate>Tue, 10 Dec 2019 20:44:33 +0800</pubDate><description><![CDATA[前天我正在看代码的时候，一个同事跑过来问我，“/proc/cpuinfo中的CPU频率是怎么来的，我在跑performance测试的时候，通过/proc/cpuinfo 查看CPU频率只有1.2G，但是我的CPU最高频率可以到2.7G。”我让他去把cpufreq governor设置成performance之后，再去执行performance测试。虽然他在做出修改之后，performanc...]]></description><category></category></item><item><title><![CDATA[acpi debug in Linux kernel]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/91459380</link><guid>https://blog.youkuaiyun.com/dachai/article/details/91459380</guid><author>dachai</author><pubDate>Tue, 11 Jun 2019 21:30:41 +0800</pubDate><description><![CDATA[本文介绍如何使用acpi debug output输出debug info，并使用debug_layer和debug_level来聚焦指定模块、指定类型的输出信息。]]></description><category></category></item><item><title><![CDATA[ACPI AML debug and override ACPI tables using initrd]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/91398387</link><guid>https://blog.youkuaiyun.com/dachai/article/details/91398387</guid><author>dachai</author><pubDate>Mon, 10 Jun 2019 21:30:20 +0800</pubDate><description><![CDATA[本文介绍ACPICA debugger tools，acpidbg和acpidump、acpiexec等；并演示如何使用这些工具，配合initrd，在不重新加载firmware的情况下，修改ACPI table。
一、ACPICA debugger acpidbg
acpidbg是一个runtime调试AML code的工具，不过Linux kernel 4.13中才引入。
1.1 how to ...]]></description><category></category></item><item><title><![CDATA[cpuidle framework in Linux Kernel（2）what's idle state]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/90216200</link><guid>https://blog.youkuaiyun.com/dachai/article/details/90216200</guid><author>dachai</author><pubDate>Fri, 17 May 2019 09:15:46 +0800</pubDate><description><![CDATA[processor中可能有多种不同的idle级别，对应着不同的power consumption和exit latency，可以在不同的场景下使用。

本文从ACPI spec中的processor low power state和Linux kernel中idle state的实现两个方面来阐述cpuidle state。
一、cpuidle state in ACPI spec
C0
full...]]></description><category></category></item><item><title><![CDATA[processor core不停地进出C4 idle state问题的解决]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/89876560</link><guid>https://blog.youkuaiyun.com/dachai/article/details/89876560</guid><author>dachai</author><pubDate>Mon, 06 May 2019 10:56:53 +0800</pubDate><description><![CDATA[processor core不停地进出C4 idle state问题的解决
问题背景描述
package中有4个core，在core0/2/3上执行dead loop程序，控制它们不会idle，core1上不做任何操作。这样core1发现没有事情做的时候，就会进入到idle state，但是由于package 中的其他core一直busy，因此，core1只会进入到core-level idle ...]]></description><category></category></item><item><title><![CDATA[Debian 9 开机自动运行脚本]]></title><link>https://blog.youkuaiyun.com/dachai/article/details/84955825</link><guid>https://blog.youkuaiyun.com/dachai/article/details/84955825</guid><author>dachai</author><pubDate>Tue, 11 Dec 2018 15:34:20 +0800</pubDate><description><![CDATA[问题背景：想要在debian9系统中，自动执行系统reboot测试。
最简单的方式是把reboot测试脚本添加到/etc/rc.local中（exit 0）之前
Debian9 默认没有/etc/rc.local文件，但是可以通过systemd恢复。
首先，我们需要修改rc.local.service文件

#vim  /lib/systemd/system/rc-local.service

加...]]></description><category></category></item></channel></rss>