文章标题

2019-04-15 13:51发布

IPI:核间中断(Inter-Processor Interrupts,IPI)XLR 732 多核多线程处理器的中断由 PIC(Programmable Interrupt Controller)统一控制。PIC 允许一个硬件线程中断其他的硬件线程,这种方式被称为核间中断 (Inter-Processor Interrupts,IPI)。PIC 拥有一个宽度为 32 位的核间中断寄存器IPIBase,该寄存器包含目的线程的编号、中断向量及中断类型(是否中断多个硬件线程)等内容。核间中断可以通过向这个寄存器写入需要的值来产生。若硬件线程 A 想要发送一个核间中断给硬件线程 B,它只需要向寄存器 IPIBase 中写入 B 的 Thread ID、中断向量、中断类型等值就可以了,PIC 会通知 B 所在的核挂起它当前的执行序列,并根据中断向量跳转到中断服务例程 ISR 的入口。使用 IPI 进行核间通信的关键在于要利用中断服务例程 ISR 去读取一个事先约好的共享内存区域。发起方首先将消息写到一块共享内存中,然后发起核间中断。被中断的硬件线程在中断服务例程中读取该内存,以获得发起方通知的消息。为防止多核间的竞争导致消息被改写,使用这种方式必须利用锁机制来确保消息的完整性。
Cgroup:Linux系统中经常有个需求就是希望能限制某个或者某些进程的分配资源。也就是能完成一组容器的概念,在这个容器中,有分配好的特定比例的cpu时间,IO时间,可用内存大小等。于是就出现了cgroup的概念,cgroup就是controller group,最初由google的工程师提出,后来被整合进Linux内核中。
Cgroup是将任意进程进行分组化管理的Linux内核功能。cgroup本身提供将进程进行分组化管理的功能和接口的基础结构。
might_sleep(): 指示当前函数可以睡眠。如果它所在的函数处于原子上下文(atomic context)中(如,spinlock, irq-handler…),将打印出堆栈的回溯信息。这个函数主要用来做调试工作,在你不确定不期望睡眠的地方是否真的不会睡眠时,就把这个宏加进去。
simple wait queue:The end result is a data structure that is far larger and more complex than it was in the 2.0 days. It is the callback feature that was most problematic for the realtime tree, though; since those callbacks can sleep, they prevent the use of “raw” spinlocks to protect the wait queues themselves. To work around this problem, Thomas Gleixner created a new “simple wait queue” mechanism that would dispense with most of the added functionality and, thus, be suitable for use in the realtime kernel.
cpufreq:CPU frequency scaling CPU 调频允许操作系统通过提高或降低 CPU 频率来达到省电目的。CPU 频率可以根据系统负载或响应 ACPI 事件来自动调整,也可通过用户空间程序手工调整。
Linux 内核具有 CPU 调频实现,该基础架构称为 cpufreq。从 3.4 内核开始,必要的模块都会自动加载,而且推荐的调频器 ondemand governor 默认启用。但是,在进行高级配置时,仍然会用到其他用户空间工具,例如 cpupower,acpid,laptop-mode-tools,或桌面环境所提供的图形化工具。
machine check:machine check 是一种用来报告内部错误的一种硬件的方式。它包括 machine check exceptions 和 silent machine check。其中,machine check exceptions(MCEs) 是在硬件不能纠正内部错误的时候发生,在这种情况下,通常会中断 CPU 当前正在运行的程序,并且调用一个特殊的异常处理程序。这种情况通常需要软件来进行处理,即 machine check exception handler。
当硬件能够纠正内部错误的时候,这种情况通常称作 silent machine check。当这种错误发生的时候,硬件会把相应的错误信息登记到特殊的寄存器中。之后,操作系统或者是固件(BIOS)就可以从这写寄存器中读取信息,登记和分析这些错误信息有助于提前预测机器硬件的故障。
twd:Timer-Watchdog –看门狗定时器
GIC:通用中断控制器