{"guid":"173c1d0a-2d76-51c4-84c6-dfcb2877a694","title":"Writing a Minimal Scheduler with eBPF, sched_ext, and C","subtitle":null,"slug":"clt25-221-writing-a-minimal-scheduler-with-ebpf-sched_ext-and-c","link":"https://chemnitzer.linux-tage.de/2025/de/programm/beitrag/221","description":"Today, eBPF is used for software-defined networking, observability, monitoring tools, and more. Previously, creating these was labor-intensive and had a high barrier to entry. With the new scheduler extensions, we can now add custom schedulers to this list. Sched_ext allows us to write schedulers with custom policies directly in eBPF.\nIn this talk, we’ll develop a basic FIFO (First-In-First-Out) scheduler in C to show you how to get started with writing your own. If you’re interested in diving deeper into eBPF, join us for a quick hands-on intro to custom scheduling!\n\nLicensed to the public under http://creativecommons.org/licenses/by/4.0","original_language":"eng","persons":["Johannes Bechberger"],"tags":["52","2025","clt25","Vortrag","V2","clt25-eng","Day 2"],"view_count":177,"promoted":false,"date":"2025-03-23T12:00:00.000+01:00","release_date":"2025-03-23T00:00:00.000+01:00","updated_at":"2026-02-13T22:45:10.041+01:00","length":3293,"duration":3293,"thumb_url":"https://static.media.ccc.de/media/events/clt/2025/52-173c1d0a-2d76-51c4-84c6-dfcb2877a694.jpg","poster_url":"https://static.media.ccc.de/media/events/clt/2025/52-173c1d0a-2d76-51c4-84c6-dfcb2877a694_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/clt/2025/52-173c1d0a-2d76-51c4-84c6-dfcb2877a694.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/clt/2025/52-173c1d0a-2d76-51c4-84c6-dfcb2877a694.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/clt25-221-writing-a-minimal-scheduler-with-ebpf-sched_ext-and-c","url":"https://api.media.ccc.de/public/events/173c1d0a-2d76-51c4-84c6-dfcb2877a694","conference_title":"Chemnitzer Linux-Tage 2025","conference_url":"https://api.media.ccc.de/public/conferences/clt25","related":[],"recordings":[{"size":347,"length":3293,"mime_type":"video/webm","language":"eng","filename":"clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2025-03-23T17:16:44.257+01:00","recording_url":"https://cdn.media.ccc.de/events/clt/2025/webm-hd/clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/85959","event_url":"https://api.media.ccc.de/public/events/173c1d0a-2d76-51c4-84c6-dfcb2877a694","conference_url":"https://api.media.ccc.de/public/conferences/clt25"},{"size":134,"length":3293,"mime_type":"video/webm","language":"eng","filename":"clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2025-03-23T16:29:19.695+01:00","recording_url":"https://cdn.media.ccc.de/events/clt/2025/webm-sd/clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/85912","event_url":"https://api.media.ccc.de/public/events/173c1d0a-2d76-51c4-84c6-dfcb2877a694","conference_url":"https://api.media.ccc.de/public/conferences/clt25"},{"size":124,"length":3293,"mime_type":"video/mp4","language":"eng","filename":"clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2025-03-23T15:21:59.716+01:00","recording_url":"https://cdn.media.ccc.de/events/clt/2025/h264-sd/clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_sd.mp4","url":"https://api.media.ccc.de/public/recordings/85858","event_url":"https://api.media.ccc.de/public/events/173c1d0a-2d76-51c4-84c6-dfcb2877a694","conference_url":"https://api.media.ccc.de/public/conferences/clt25"},{"size":32,"length":3293,"mime_type":"audio/opus","language":"eng","filename":"clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2025-03-23T15:21:35.021+01:00","recording_url":"https://cdn.media.ccc.de/events/clt/2025/opus/clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_opus.opus","url":"https://api.media.ccc.de/public/recordings/85853","event_url":"https://api.media.ccc.de/public/events/173c1d0a-2d76-51c4-84c6-dfcb2877a694","conference_url":"https://api.media.ccc.de/public/conferences/clt25"},{"size":50,"length":3293,"mime_type":"audio/mpeg","language":"eng","filename":"clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2025-03-23T15:21:30.978+01:00","recording_url":"https://cdn.media.ccc.de/events/clt/2025/mp3/clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/85852","event_url":"https://api.media.ccc.de/public/events/173c1d0a-2d76-51c4-84c6-dfcb2877a694","conference_url":"https://api.media.ccc.de/public/conferences/clt25"},{"size":413,"length":3293,"mime_type":"video/mp4","language":"eng","filename":"clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2025-03-23T14:54:59.619+01:00","recording_url":"https://cdn.media.ccc.de/events/clt/2025/h264-hd/clt25-52-eng-Writing_a_Minimal_Scheduler_with_eBPF_sched_ext_and_C_hd.mp4","url":"https://api.media.ccc.de/public/recordings/85797","event_url":"https://api.media.ccc.de/public/events/173c1d0a-2d76-51c4-84c6-dfcb2877a694","conference_url":"https://api.media.ccc.de/public/conferences/clt25"}]}