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

随笔分类 -  Linux时间子系统

Linux时间子系统之四:Timer在用户和内核空间流程
摘要:用户空间应用中创建一个Timer(alarm/setitimer/POSIX Timer等等),然后程序继续执行; 内核进入创建/设置Timer系统调用,开始计时,在超时后通过何种方式通知用户空间; 用户空间又是如何执行回调函数的。 下面就着重这个流程,梳理一下Timer周期中用户空间和内核空间涉及 阅读全文

posted @ 2017-11-30 16:22 ArnoldLu 阅读(4916) 评论(0) 推荐(0) 编辑

Linux时间子系统专题汇总
摘要:关于Linux时间子系统有两个系列文章讲的非常好,分别是WowoTech和DroidPhone. 还有两本书分别是介绍: Linux用户空间时间子系统《Linux/UNIX系统编程手册》的第10章 时间和第23章 定时器与休眠 Linux内核时间子系统《深入Linux内核架构》的第15章 时间管理。 阅读全文

posted @ 2017-08-10 14:03 ArnoldLu 阅读(6297) 评论(0) 推荐(3) 编辑

Linux时间子系统之三:jiffies
摘要:1. jiffies背景介绍 jiffies记录了系统启动以来,经过了多少tick。 一个tick代表多长时间,在内核的CONFIG_HZ中定义。比如CONFIG_HZ=200,则一个jiffies对应5ms时间。所以内核基于jiffies的定时器精度也是5ms。 2. jiffies初始化与更新 阅读全文

posted @ 2017-07-25 15:34 ArnoldLu 阅读(35017) 评论(1) 推荐(2) 编辑

Linux时间子系统之二:Alarm Timer
摘要:一、前言 严格来讲Alarm Timer也算POSIX Timer一部分,包含两种类型CLOCK_REALTIME_ALARM和CLOCK_BOOTTIME_ALARM。分别是在CLOCK_REALTIME和CLOCK_BOOTTIME后面加上_ALARM。Alarm Timer之外的POSIX T 阅读全文

posted @ 2017-07-10 15:06 ArnoldLu 阅读(9973) 评论(0) 推荐(1) 编辑

Linux时间子系统之一:认识timer_list和timer_stats和使用
摘要:内核版本:v3.4.xxx 一、前言 内核提供了方便查看当前系统TickDevice、活动的Timer列表以及Timer使用的统计信息。 内核分别用两个节点来表示TimerList和Timer统计信息。 一个是/proc/timer_list,打印per_cpu的hrtimer_bases信息以及基 阅读全文

posted @ 2017-07-06 14:44 ArnoldLu 阅读(5717) 评论(0) 推荐(1) 编辑

Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)
摘要:在前面章节的讨论中,我们一直基于一个假设:Linux中的时钟事件都是由一个周期时钟提供,不管系统中的clock_event_device是工作于周期触发模式,还是工作于单触发模式,也不管定时器系统是工作于低分辨率模式,还是高精度模式,内核都竭尽所能,用不同的方式提供周期时钟,以产生定期的tick事件 阅读全文

posted @ 2017-06-25 22:20 ArnoldLu 阅读(1802) 评论(0) 推荐(0) 编辑

Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()
摘要:我们已经在前面几章介绍了低分辨率定时器和高精度定时器的实现原理,内核为了方便其它子系统,在时间子系统中提供了一些用于延时或调度的API,例如msleep,hrtimer_nanosleep等等,这些API基于低分辨率定时器或高精度定时器来实现,本章的内容就是讨论这些方便、好用的API是如何利用定时器 阅读全文

posted @ 2017-06-25 22:19 ArnoldLu 阅读(1505) 评论(0) 推荐(0) 编辑

Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
摘要:专题文档汇总目录 Notes: 原文地址:Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现 上一篇文章,我介绍了传统的低分辨率定时器的实现原理。而随着内核的不断演进,大牛们已经对这种低分辨率定时器的精度不再满足,而且,硬件也在不断地发展,系统中的定时器硬件的精度也越来越高,这也给 阅读全文

posted @ 2017-06-25 22:18 ArnoldLu 阅读(5227) 评论(1) 推荐(0) 编辑

Linux时间子系统之四:定时器的引擎:clock_event_device
摘要:早期的内核版本中,进程的调度基于一个称之为tick的时钟滴答,通常使用时钟中断来定时地产生tick信号,每次tick定时中断都会进行进程的统计和调度,并对tick进行计数,记录在一个jiffies变量中,定时器的设计也是基于jiffies。这时候的内核代码中,几乎所有关于时钟的操作都是在machin 阅读全文

posted @ 2017-06-25 22:17 ArnoldLu 阅读(1593) 评论(0) 推荐(0) 编辑

Linux时间子系统之五:低分辨率定时器的原理和实现
摘要:专题文档汇总目录 Notes:低精度timer在内核中的数据结构以及API接口;低精度timer精巧高效的分组,使用cascade进行定时器移位,组内Timer FIFO;低精度Timer的初始化流程。 原文地址:Linux时间子系统之五:低分辨率定时器的原理和实现 利用定时器,我们可以设定在未来的 阅读全文

posted @ 2017-06-25 22:17 ArnoldLu 阅读(2145) 评论(0) 推荐(1) 编辑

Linux时间子系统之三:时间的维护者:timekeeper
摘要:专题文档汇总目录 Notes: 原文地址:Linux时间子系统之三:时间的维护者:timekeeper 本系列文章的前两节讨论了用于计时的时钟源:clocksource,以及内核内部时间的一些表示方法,但是对于真实的用户来说,我们感知的是真实世界的真实时间,也就是所谓的墙上时间,clocksourc 阅读全文

posted @ 2017-06-25 22:16 ArnoldLu 阅读(2947) 评论(0) 推荐(0) 编辑

Linux时间子系统之二:表示时间的单位和结构
摘要:人们习惯用于表示时间的方法是:年、月、日、时、分、秒、毫秒、星期等等,但是在内核中,为了软件逻辑和代码的方便性,它使用了一些不同的时间表示方法,并为这些表示方法定义了相应的变量和数据结构,本节的内容就是阐述这些表示方法的意义和区别。 /******************************** 阅读全文

posted @ 2017-06-25 22:15 ArnoldLu 阅读(1776) 评论(0) 推荐(0) 编辑

Linux时间子系统之一:clock source(时钟源)
摘要:clock source用于为Linux内核提供一个时间基线,如果你用linux的date命令获取当前时间,内核会读取当前的clock source,转换并返回合适的时间单位给用户空间。在硬件层,它通常实现为一个由固定时钟频率驱动的计数器,计数器只能单调地增加,直到溢出为止。时钟源是内核计时的基础, 阅读全文

posted @ 2017-06-25 22:13 ArnoldLu 阅读(3252) 评论(0) 推荐(1) 编辑

Linux时间子系统之(十六):clockevent
摘要:专题文档汇总目录 Notes:介绍struct clocke_event_device及其功能feature、模式;触发event接口clockevents_program_event;clockevent注册接口;clockevent的sysfs接口。 原文地址:Linux时间子系统之(十六):c 阅读全文

posted @ 2017-06-25 22:11 ArnoldLu 阅读(2721) 评论(0) 推荐(0) 编辑

Linux时间子系统之(十七):ARM generic timer驱动代码分析
摘要:专题文档汇总目录 Notes:ARM平台Clock/Timer架构;System counter、Timer以及两者之间关系;Per cpu timer通过CP15访问,System counter通过memory mapped IO访问;将System counter和Per cpu timer分 阅读全文

posted @ 2017-06-25 22:11 ArnoldLu 阅读(9528) 评论(0) 推荐(0) 编辑

Linux时间子系统之(十四):tick broadcast framework
摘要:专题文档汇总目录 Notes:BroadcastTick作为cpuidle的waker,硬件基础。BroadcastTick嵌入在当前系统Tick框架中。BroadcastTick设备初始化;周期性Tick和OneShot两种模式下BroadcastTick的工作。 原文地址:Linux时间子系统之 阅读全文

posted @ 2017-06-25 22:09 ArnoldLu 阅读(1597) 评论(0) 推荐(0) 编辑

Linux时间子系统之(十五):clocksource
摘要:专题文档汇总目录 Notes:clocksource基本概念,struct clocksource详解;注册和注销clocksource;内核如何选取clocksource;clocksource相关sysfs;cyclecounter和timercounter。 原文地址:Linux时间子系统之( 阅读全文

posted @ 2017-06-25 22:09 ArnoldLu 阅读(1800) 评论(0) 推荐(0) 编辑

Linux时间子系统之(十三):Tick Device layer综述
摘要:专题文档汇总目录 Notes:从概念层次描述了tick-comm、oneshot tick、broadcast tick;重点介绍了tick和tickless概念及其区别,两种tick device:periodic tick和oneshot tick;周期性时钟是如何运作的;高精度情况下,dyna 阅读全文

posted @ 2017-06-25 22:06 ArnoldLu 阅读(2461) 评论(0) 推荐(0) 编辑

Linux时间子系统之(十二):periodic tick
摘要:专题文档汇总目录 Notes:TickDevice模式,以及clocckevent设备。TickDevice设备的初始化,TickDevice是如何加入到系统中的。周期性Tick的产生。 原文地址:Linux时间子系统之(十二):periodic tick 一、tick device概念介绍 1、数 阅读全文

posted @ 2017-06-25 22:05 ArnoldLu 阅读(2433) 评论(0) 推荐(0) 编辑

Linux时间子系统之(六):POSIX timer
摘要:专题文档汇总目录 Notes:首先讲解了POSIX timer的标识(唯一识别)、POSIX Timer的组织(管理POSIX Timer)、内核中如何抽象POSIX Timer;然后分析了POSIX timer相关系统调用(timer_create/timer_gettime/timer_geto 阅读全文

posted @ 2017-06-25 22:04 ArnoldLu 阅读(7119) 评论(0) 推荐(0) 编辑

导航