处理器架构
文章平均质量分 93
温暖的电波
这个作者很懒,什么都没留下…
展开
-
Linux中的current与rq->curr浅析
基于linux-5.4背景在内核中检查当前运行任务时有时候会使用rq->curr,而其他时候内核又使用current来作为当前进程使用,究竟二者是什么关系,又什么区别呢? 带着好奇心我扒开内核代码简单进行了分析1 rq->curr浅析rq->curr表示的是rq这个就绪队列上当前正在运行任务的task_struct结构指针,它在调度函数__schedule()中进行更新。在主调度函数__schedule()中,内核先选好下一个将要运行的任务next,然后将任务next更原创 2021-06-23 21:18:24 · 1180 阅读 · 0 评论 -
aarch64异常(二)el0_irq
内核版本:linux-4.9.217el0_irq: kernel_entry 0el0_irq_naked: enable_dbg#ifdef CONFIG_TRACE_IRQFLAGS bl trace_hardirqs_off#endif ct_user_exit#ifdef CONFIG_HARDEN_...原创 2020-05-03 21:45:36 · 2087 阅读 · 2 评论 -
aarch64异常(一)aarch64异常简介
目录Aarch64中异常的基本概念异常发生时硬件做了哪些事情?异常的处理Aarch64中异常的基本概念在aarch64中,将中断、系统调用、数据指令异常等等情况统称为异常。异常会中断当前cpu执行流,转而执行具有更高权限的代码,即exception handler。当异常处理完毕后cpu会再次返回到之前的被中断的代码流继续执行。常见的异常有中断、系统调用、数据指...原创 2020-04-15 22:32:38 · 4203 阅读 · 3 评论 -
xenomai系统中timer校准简要分析
一、背景Xenomai为了提升系统的响应速度、减少响应延时在各个维度上都做了许多工作。其中为了减少定时器上的延时在定时器上实时了一个叫做gravity的校准,以尽可能的消除timer响应路径上的延时,确保定时器的响应时间更加接近用户的期望到期时间。二、gravity的默认值Xenomai初始化阶段会调用xnclock_init()函数来设置默认的gravity值,逻辑如下:s...原创 2020-06-01 14:26:18 · 1321 阅读 · 1 评论 -
aarch64-linux-gnu/bin/ld: cannot find -lz collect2: error: ld returned 1 exit status解决方案
起因 从linaro下载的aarch64工具链不包含libz库,导致有些static参数的编译程序无法通过,出现类似如下问题:gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/6.3.1/../../../../aarch64-linux-gnu/bin/ld: ca...原创 2019-07-05 22:14:19 · 11169 阅读 · 0 评论 -
MIPS系统调用追踪(一)
说明:内核版本:4.4架构:mips64c库:glibc-2.24一、用户态到c库这里以系统调用 sync_file_range举例。原因有两点:一是这个系统调用在参数多达6个;二是参数中有64位参数,这个系统调用的原型为:int sync_file_range (int fd, __off64_t from, __off64_t to, unsigned int flags...原创 2019-02-01 20:17:02 · 1040 阅读 · 0 评论 -
Powerpc-E500 看我如何消费TLB
powerpc e500系列 tlb的基本原理 tlb的基本编程思路原创 2017-03-12 21:01:19 · 1258 阅读 · 0 评论