Linux 核心設計: 中斷處理和現代架構考量 === :::warning 注意!這是上課筆記 ::: :::info 原始課程在這裡 - [影片 Part 1](https://www.youtube.com/watch?v=EjPWklezNrU) - [影片 Part 2](https://www.youtube.com/watch?v=8ejnYR7A2Nc) - [講義](https://hackmd.io/@sysprog/linux-interrupt?type=view) Original by [jserv](http://wiki.csie.ncku.edu.tw/User/jserv) ::: --- # Part 1 | Section | Time| Description | | -------- | -------- | -------- | | 1 | [00:00:11](https://youtu.be/EjPWklezNrU?si=_v1mrHCj7B4yHl8f&t=11) | 1. 簡介。<br> 2. 中斷處理概念。<br> 3. The kernel as a Multithread server.<br> 4. Overview. | | 2 | [00:16:48](https://youtu.be/EjPWklezNrU?si=d_fXNTvYgKsC5Z46&t=1008) | 1. Interrupts: 中斷處理跟硬體特性有關。<br> 2. Types of interrupt: 同步與非同步。<br> 3. Interrupt Hardware. | | 3 | [00:26:34](https://youtu.be/EjPWklezNrU?si=5-mFbtWx9eld2X1i&t=1594) | 1. The Interrupt Controller.<br> 2. Interrupt on 80386(Intel).<br> 3. Advanced Programmable Interrupt Controller(APIC).<br> 4. APIC / IP-APIC / Local APIC(LAPIC). | | 4 | [00:37:05](https://youtu.be/EjPWklezNrU?si=aBHVUqKVKFxj7Glz&t=2225) | 1. Assigning IRQs to Device.<br> 2. interrupt descriptor table(IDT).<br> 3. Dispatching Interrupts.<br> 4. Interrupt Masking.<br> 5. Nested Interrupts.<br> 6. 最大化同步:high throughput. | | 5 | [00:52:32](https://youtu.be/EjPWklezNrU?si=hoKhe2OHTEmOqyPY&t=3152) | 1. Nested Execution.<br> 2. First-level Interrupt Handler(Assembly).<br> 3. Interrupt Handling: Top-half critical / Top-half non-critical / Bottom half.<br> 4. Interrupt context.<br> 5. Interrupt Stack. | | 6 | [01:03:13](https://youtu.be/EjPWklezNrU?si=HT7M9xAUkQQbUOKh&t=3793) | 1. Deferrable work.<br> 2. Soft irq.<br> 3. ksoftirqd: a kernel thread to process deferred soft IRQs.<br> 4. Tasklets (interrupt context).<br> 5. work queue (process context).<br> 6. Comparison: ISR / Soft IRQ / Tasklet / Work queue. | | 7 | [01:15:24](https://youtu.be/EjPWklezNrU?si=JG8WSDNoOv9s_iXu&t=4524) | 1. I/O access and Interrupt 實驗。 | | 8 | [01:24:20](https://youtu.be/EjPWklezNrU?si=PxEXoBb89w-qg02d&t=5060) | 1. 教材 “Linux Interrupt Processing and Kernel Thread”.<br> 2. Preemptive Context Switching.<br> 3. Nested Execution of Handlers.<br> 4. I/O interrupt handling. <br> 5. interrupt preemption.<br> 6. soft IRQ. | | 9 | [01:37:03](https://youtu.be/EjPWklezNrU?si=d8OwzxJpCSahWoOQ&t=5823) | 1. Tasklets.<br> 2. work queue.<br> 3. 投影片 “Making Linux do Hard Real-time”.<br> 4. context switching.<br> 5. clock interrupts. | | 10 | [01:55:48](https://youtu.be/EjPWklezNrU?si=I-MOQneeGP05tSfU&t=6948) | 1. Latency in Kernel.<br> 2. Source of interrupt latency.<br> 3. Interrupt handler implementation.<br> 4. Interrupt handler execution time.<br> 5. Preempt RT. | | 11 | [02:08:56](https://youtu.be/EjPWklezNrU?si=hVeq53T9agPwrnMo&t=7736) | 1. Preemptible kernel / FUll Preemptive.<br> 2. Threaded Interrupts. | | 12 | [02:23:00](https://youtu.be/EjPWklezNrU?si=03OQSUR50i7MDW7J&t=8580) | 1. 投影片 “IRQs: the Hard, the Soft, the Threaded and the Preemptible”.<br> 2. Non-maskable Interrupt(NMI).<br> 3. mpstat.<br> 4. inter-processor interrupt. | | 13 | [02:41:45](https://youtu.be/EjPWklezNrU?si=JpKK-JafcHRPTP0M&t=9705) | 1. What's an NMI?<br> 2. How IRQ masking works?<br> 3. Fast Interrupt reQuest(FIQ).<br> 4. IRQ domain.<br> 5. Threaded IRQ.<br> 6. 回顧。 # Part 2 | Section | Time| Description | | -------- | -------- | -------- | | 1 | [00:00:11](https://youtu.be/8ejnYR7A2Nc?si=X3JyR4d2h6m-lQPI&t=11) | 1. 前情提要: Hard IRQ / Soft IRQ / Workqueue。<br> 2. Preemptive context switch.<br> 3. Top half and bottom half. | | 2 | [00:11:13](https://youtu.be/8ejnYR7A2Nc?si=dvmrmVBBOKxTfhll&t=673) | 1. 進行實驗。<br> 2. I/O ports (Intel) and memory mapped I/O (ARM)。<br> 3. /proc/interrupts: IPI, timer。<br> 4. kernel tickless. | | 3 | [00:30:17](https://youtu.be/8ejnYR7A2Nc?si=l5omBaBeJCpIsq0B&t=1817) | 1. 投影片 “Kernel 4.10 Examples of linux drivers”.<br> 2. Linux device driver: block, character, network.<br> 3. misc_example.c<br> 4. sysfs/bin_attr/hello.c | | 4 | [00:55:15](https://youtu.be/8ejnYR7A2Nc?si=7UnJqlzOn8gFyAaK&t=3315) | 1. 電子書 “Linux Kernel Module Programming Guide”.<br> 2. 投影片 “Char driver with interrupt handling”. | | 5 | [01:07:16](https://youtu.be/8ejnYR7A2Nc?si=hZVNm3nBqOpQ3vaO&t=4036) | 1. hard real time and soft real time.<br> 2. 投影片 “Making Linux do Hard Real-time”.<br> 3. spin lock for RT preemption. | | 6 | [01:22:42](https://youtu.be/8ejnYR7A2Nc?si=L7Zo-UJF_c0ZPYsX&t=4962) | 1. 投影片 “IRQs: the Hard, the Soft, the Threaded and the Preemptible”. | | 7 | [01:36:06](https://youtu.be/8ejnYR7A2Nc?si=ZxI8G4P-v-l0t6ZG&t=5766) | 1. ktimersoftd.<br> 2. 利用 eBPF 動態追蹤 linux kernel.<br> 3. kprobe 的使用。<br> 4. level trigger / edge trigger. | | 8 | [01:43:10](https://youtu.be/8ejnYR7A2Nc?si=GCmwhHGa5E7RN8DG&t=6190) | 1. 電子書 “Interrupts and Interrupt Handling”.<br> 2. IRQ vector table. | | 9 | [01:54:00](https://youtu.be/8ejnYR7A2Nc?si=rQpDHRSJRPBBHTgQ&t=6840) | 1. softirq, tasklet, workqueue.<br> 2. kworker: kernel work queue.<br> 3. interrupt context(不會進入排程) and process context(會重新排程). | | 10 | [02:05:30](https://youtu.be/8ejnYR7A2Nc?si=vF7ZEej7uOTHCYqb&t=7530) | 1. 虛擬化對中斷處理的影響。<br> 2. 投影片 “I/O in Linux Hypervisors and Virtual Machines”.<br> 3. Why is I/O hard to virtualize? | | 11 | [02:18:13](https://youtu.be/8ejnYR7A2Nc?si=5ZFJsfylP76qc5QH&t=8293) | 1. Processing an I/O request from a VM.<br> 2. Switching between VMs.<br> 3. VM entry and VM exit. | | 12 | [02:28:45](https://youtu.be/8ejnYR7A2Nc?si=jZIQ47d8fSMZr3AI&t=8925) | 1. virtio.<br> 2. virtual interrupts.<br> 3. ARM interrupt virtualization.<br> 4. GIC architechture. | | 13 | [02:44:24](https://youtu.be/8ejnYR7A2Nc?si=eUYO7a-dcCurRCeY&t=9864) | 1. 部落格 “簡介 GIC-400”。<br> 2. 部落格 "Linux 核心的中斷子系統"。<br> 3. IRQ domain 的概念。<br> 4. 總結。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up