Advanced Kernel Programming
This is the home page for the "Advanced Kernel Programming" course.
Here, you can find information about the lessons and all the material
used during the course
For the previous editions of the course, check the old websites: 2019/2020
and 2022/2023 (WARNING: This edition of the course was attended by students that did not attend the Linux Kernel Programming course... So, I was forced to repeat topics from the previous course).
Lessons:
- First lesson: 2024/11/04, 9:30 -> 11:30
- Introduction to the course
- Recall some basic concepts about Linux
- SCHED_DEADLINE
- Second lesson: 2024/11/07, 9:30 -> 11:30
- Affinity masks, and their usage
- Multi-core scheduling, push/pull functions
- Some more details about the scheduler implementation (scheduling classes, some functions pointed in the classes, how to block/wakeup a task, the schedule() function)
- Transforming SCHED_DEADLINE into a partitioned scheduler
- Third lesson: 2024/11/11, 9:30 -> 11:30
- Fourth lesson: 2024/11/14, 9:30 -> 11:30
Fifth lesson: 2024/11/18, 9:30 -> 11:30
- Fifth lesson: 2024/11/21, 9:30 -> 11:30
- Sixth lesson 2024/11/25, 9:30 -> 11:30
- Seventh lesson 2024/11/28, 9:30 -> 11:30
- Eighth lesson 2024/12/02, 9:30 -> 11:30
- Nineth lesson 2024/12/05, 9:30 -> 11:30
- Tenth lesson 2024/12/09, 9:30 -> 11:30
Interesting Kernel CallChains:
Downloads:
Interesting Papers:
- Bonwick, Jeff. "The slab allocator: An object-caching kernel memory allocator." USENIX summer. Vol. 16. 1994.
- Bonwick, Jeff, and Jonathan Adams. "Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources." USENIX Annual Technical Conference, General Track. 2001.
- Mogul, Jeffrey C., and K. K. Ramakrishnan. "Eliminating receive livelock in an interrupt-driven kernel." ACM Transactions on Computer Systems 15.3 (1997): 217-252.