
不能。你不能像固定(pin)一个普通用户态进程那样,直接在运行时为 eBPF 程序本身指定它必须运行在哪个 CPU 核心上。
eBPF 程序的执行 CPU 是由触发它的“事件”所在的 CPU 决定的。因此,你可以通过控制“事件源”的 CPU 亲和性来间接控制 eBPF 程序的执行位置。
eBPF 程序不是一个像用户态进程或内核线程那样的独立、可调度的实体。它没有自己的执行上下文,不会被操作系统的调度器(Scheduler)管理。
eBPF 程序的本质是事件驱动(Event-driven)的。它被附加(attach)到内核中的特定挂载点(hook point),只有当相应的事件发生时,它才会在该事件的上下文中被动执行。
这个执行上下文在哪里,eBPF 程序就在哪个 CPU 上运行。