Re: [PATCH bpf] bpf: update bpf_get_smp_processor_id() documentation

From: Yonghong Song
Date: Tue Sep 14 2021 - 19:02:41 EST




On 9/14/21 3:23 PM, Matteo Croce wrote:
From: Matteo Croce <mcroce@xxxxxxxxxxxxx>

Since commit 1e6c62a88215 ("bpf: Introduce sleepable BPF programs"), BPF
programs can sleep if the BPF_F_SLEEPABLE flag is set.
Update the documentation accordingly.

Fixes: 1e6c62a88215 ("bpf: Introduce sleepable BPF programs")

I think we don't need this Fixes tag as this patch should target to
bpf-next tree. There is no need to backport to bpf tree since it is
just a documentation change.

Based on *current* implementation, referring to sleepable BPF
program commit is not needed any more. See below for the suggested
change.

Signed-off-by: Matteo Croce <mcroce@xxxxxxxxxxxxx>
---
include/uapi/linux/bpf.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index d21326558d42..5e3b2fb62d84 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -1629,9 +1629,9 @@ union bpf_attr {
* u32 bpf_get_smp_processor_id(void)
* Description
* Get the SMP (symmetric multiprocessing) processor id. Note that
- * all programs run with preemption disabled, which means that the
- * SMP processor id is stable during all the execution of the
- * program.
+ * programs run with preemption disabled unless BPF_F_SLEEPABLE is
+ * set, which means that the SMP processor id is stable during all
+ * the execution of the program.

Currently, migrate_disable() means true migration disable and preemption is possible, and BPF_F_SLEEPABLE programs are also protected by migrate_disable().

So the patch should just change "with preemption disabled" to
"with migration disabled" to reflect the new implementation.

* Return
* The SMP id of the processor running the program.
*