On Fri, Sep 10, 2021 at 07:00:08PM +0000, Song Liu wrote:
Hmm.. not really. We call migrate_disable() before entering the BPF program.
And the helper calls snapshot_branch_stack() inside the BPF program. To move
it to before migrate_disable(), we will have to add a "whether to snapshot
branch stack" check before entering the BPF program. This check, while is
cheap, is added to all BPF programs on this hook, even when the program does
not use snapshot at all. So we would rather keep all logic inside the helper,
and not touch the common path.
Moo :/ Because I also really don't want to expose struct rq, it's
currently nicely squirelled away in kernel/sched/ and doesn't get
anywhere near include/.
A well, maybe we can do something clever with migrate_disable() itself.
I'll put it on this endless todo list ;-)