随笔分类 -  Linux定时测量

Linux内核jiffies简介
摘要:在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构struct timeval{time_t tv_sec; /***second***/susecond_t tv_usec;/***microsecond* 阅读全文

posted @ 2018-02-22 16:31 AlanTu 阅读(3050) 评论(0) 推荐(0) 编辑

Linux时间子系统(十七) ARM generic timer驱动代码分析
摘要:一、前言 关注ARM平台上timer driver(clocksource chip driver和clockevent chip driver)的驱动工程师应该会注意到timer硬件的演化过程。在单核时代,各个SOC vendor厂商购买ARM core的IP,然后自己设计SOC上的periphe 阅读全文

posted @ 2018-02-14 14:39 AlanTu 阅读(1138) 评论(0) 推荐(0) 编辑

Linux时间子系统(十六) clockevent
摘要:一、clock event控制的通用逻辑 1、产生clock event的设备 各种系统的timer硬件形形色色,不过在general clock event device layer,struct clock_event_device被来抽象一个可以产生clock event的timer硬件设备, 阅读全文

posted @ 2018-02-14 14:39 AlanTu 阅读(869) 评论(0) 推荐(0) 编辑

Linux时间子系统(十五) clocksource
摘要:一、前言 和洋葱一样,软件也是有层次的,内核往往需要对形形色色的某类型的驱动进行抽象,屏蔽掉其具体的特质,获取该类驱动共同的逻辑,而又根据这些逻辑撰写该类驱动的抽象层。嵌入式系统总是会提供timer的硬件block,软件需要对timer硬件提供的功能进行抽象:linux kernel将timer类型 阅读全文

posted @ 2018-02-14 14:38 AlanTu 阅读(1997) 评论(0) 推荐(0) 编辑

Linux时间子系统(十三) Tick Device layer综述
摘要:一、前言 时间子系统中的tick device layer主要涉及kernel/time/tick-*相关的文件,本文的主要内容就是从high level层次(不纠缠在具体的每行代码)描述tick device layer的运作逻辑。 如果说每个.c文件是一个模块的话,我们可以首先简单描述tick 阅读全文

posted @ 2018-02-14 14:37 AlanTu 阅读(996) 评论(0) 推荐(0) 编辑

Linux时间子系统(十四) tick broadcast framework
摘要:一、前言 在内核中,有cpuidle framework可以控制cpu的节电:当没有进程调度到该cpu上执行的时候,swapper进程粉墨登场,将该cpu会被推入到idle状态。当然CPU的idle状态有深有浅,当CPU睡的比较深入的时候,有可能会关闭本地的timer硬件。这样就会引入一个很有意思的 阅读全文

posted @ 2018-02-14 14:37 AlanTu 阅读(948) 评论(0) 推荐(0) 编辑

Linux时间子系统(十二) periodic tick
摘要:一、tick device概念介绍 1、数据结构 在内核中,使用struct tick_device来抽象系统中的tick设备,如下: struct tick_device { struct clock_event_device *evtdev; enum tick_device_mode mode 阅读全文

posted @ 2018-02-14 14:36 AlanTu 阅读(760) 评论(0) 推荐(0) 编辑

Linux时间子系统(五) POSIX Clock
摘要:一、前言 clock是timer的基础,任何一个timer都需要运作在一个指定的clock上来。内核中维护了若干的clock,本文第二章描述了clock的基本概念和一些静态定义的posix clock。根据计时的特点,clock分成两种:一种是真实世界的时间概念,另外一个是仅仅计算CPU执行时间 , 阅读全文

posted @ 2018-02-14 14:35 AlanTu 阅读(661) 评论(0) 推荐(0) 编辑

Linux时间子系统(六) POSIX timer
摘要:一、前言 在用户空间接口函数文档中,我们描述了和POSIX timer相关的操作,主要包括创建一个timer、设定timer、获取timer的状态、获取timer overrun的信息、删除timer。本文将沿着这些用户空间的接口定义来看看内核态的实现。虽然POSIX timer可以基于各种不同的c 阅读全文

posted @ 2018-02-14 14:35 AlanTu 阅读(991) 评论(0) 推荐(0) 编辑

Linux时间子系统(四) timekeeping
摘要:一、前言 timekeeping模块是一个提供时间服务的基础模块。Linux内核提供各种time line,real time clock,monotonic clock、monotonic raw clock等,timekeeping模块就是负责跟踪、维护这些timeline的,并且向其他模块(t 阅读全文

posted @ 2018-02-14 14:34 AlanTu 阅读(1187) 评论(0) 推荐(0) 编辑

Linux时间子系统(三) 用户空间接口函数
摘要:一、前言 从应用程序的角度看,内核需要提供的和时间相关的服务有三种: 1、和系统时间相关的服务。例如,在向数据库写入一条记录的时候,需要记录操作时间(何年何月何日何时)。 2、让进程睡眠一段时间 3、和timer相关的服务。在一段指定的时间过去后,kernel要alert用户进程 本文主要描述和时间 阅读全文

posted @ 2018-02-14 14:33 AlanTu 阅读(871) 评论(0) 推荐(0) 编辑

Linux时间子系统(一) 基本概念
摘要:本文使用Q & A的方式来和大家以前探讨一下时间的基本概念 一、什么是时间? 这个问题实在是太复杂了,我都不知道这是一个物理学、宇宙学、还是热力学异或是哲学问题,我只是想从几个侧面来了解一下时间这个概念。本节内容都是我坐在公交车上瞎想的,对物理学有兴趣的人可以指出我的错误(一个搞linux kern 阅读全文

posted @ 2018-02-14 14:32 AlanTu 阅读(407) 评论(0) 推荐(0) 编辑

Linux时间子系统(二) 软件架构
摘要:一、前言 本文的主要内容是描述内核时间子系统的软件框架。首先介绍了从旧的时间子系统迁移到新的时间子系统的源由,介绍新的时间子系统的优势。第三章汇整了时间子系统的相关文件以及内核配置。最后描述各种内核配置下的时间子系统的数据流和控制流。 二、背景介绍 1、传统内核时间子系统的软件架构 让我们先回到远古 阅读全文

posted @ 2018-02-14 14:32 AlanTu 阅读(1208) 评论(0) 推荐(0) 编辑

Linux时钟
摘要:一、前言 时钟或者钟表(clock)是一种计时工具,每个人都至少有一块,可能在你的手机里,也可能佩戴在你的手腕上。如果Linux也是一个普通人的话,那么她的手腕上应该有十几块手表,包括:CLOCK_REALTIME、CLOCK_MONOTONIC、CLOCK_PROCESS_CPUTIME_ID、C 阅读全文

posted @ 2018-02-13 22:43 AlanTu 阅读(2781) 评论(0) 推荐(0) 编辑

导航