New

SECT: Linux Concurrency Fuzzing

How sched_ext turns task order into a testable search

8 chapters68 min total
Keywords
SECTsched_extConcurrencyFuzzingeBPFInterleavingTemporal isolationSyzkallerKCSANLinux
Overview

SECT turns Linux scheduling into a concurrency-testing resource: Syzkaller first finds useful syscall programs, then selected tasks run under domain-local temporal isolation while policies choose among eligible tasks. Instrumented scheduling points and admissibility checks make rare orderings more reachable without claiming exhaustive coverage or universal safety. The series explains the sched_ext control boundary, policy trade-offs, oracle roles, measured gains, throughput costs, and kernel-version limits.

Learning outcomes
  • SECT makes task order an explicit search dimension alongside syscall-input exploration.
  • Domain-local temporal isolation exposes ordered choices while preserving parallelism across test instances.
  • sched_ext provides a guarded dispatch boundary; it does not give BPF unrestricted control of the kernel.
  • Extra scheduling points and admissibility checks can improve reachability, but leave sampling, safety, completeness, and version limits.
Keywords
SECTsched_extConcurrencyFuzzingeBPFInterleavingTemporal isolationSyzkallerKCSANLinux

Chapters

Preview every chapter · Unlock full text, audio, and video from chapter 4

Plans
Ch.1-3 FreeCh.4-8 Premium

FAQ

What problem does SECT solve in Linux concurrency testing?

SECT targets rare task interleavings that ordinary scheduling may fail to produce after an input reaches the relevant kernel code. It makes selected scheduling decisions programmable within a test domain.

How does SECT work with sched_ext?

sched_ext lets a BPF scheduler participate in CPU selection, enqueueing, dispatch, and task lifecycle while the scheduler core retains state and recovery authority. SECT uses that boundary for exploration.

Does SECT explore all Linux thread interleavings?

No. Its reach depends on domain membership, runnable tasks, instrumented and sampled scheduling points, admissibility checks, the active policy, and the kernel version. The result is bounded testing evidence, not exhaustive coverage.

What role does KCSAN play alongside SECT?

KCSAN observes sampled executions for evidence of data races and supported concurrency assertions, while SECT chooses task order. KCSAN cannot select the interleaving, and SECT does not classify every failure as a data race.