Driver scheduling

Can one eBPF rule stop a GPU process from starting?

0kernels, blocked process
15,553kernels, its peer
7,425each, with no rule

Summary

We hooked the driver step that schedules a new channel group. The blocked process was refused on 42 of 42 attempts (status 3) and ran 0 kernels.

What we wanted to know

Can one small rule decide which process gets onto the GPU at all?

How to read this

The bind step is the call CUDA makes to schedule a new channel group. Our eBPF hook there returns an allow flag.

Setup

NVIDIA's GB10 chip, one patched driver build, two processes. Kernels counted by Nsight Systems.

Results

Blocking a GPU process with an eBPF rule. Process 1, blocked, ran 0 kernels with status 3 on all 42 attempts. Process 2 ran 15,553 kernels. With no rule, both processes ran 7,425 kernels each.

What we still don't know

This is admission control on one patched driver build. It does not show preemption, priority, fairness or firmware enforcement.