2021-09-14 22:25:07

by Matteo Croce

[permalink] [raw]
Subject: [PATCH bpf] bpf: update bpf_get_smp_processor_id() documentation

From: Matteo Croce <[email protected]>

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")
Signed-off-by: Matteo Croce <[email protected]>
---
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.
* Return
* The SMP id of the processor running the program.
*
--
2.31.1


2021-09-14 23:04:06

by Yonghong Song

[permalink] [raw]
Subject: Re: [PATCH bpf] bpf: update bpf_get_smp_processor_id() documentation



On 9/14/21 3:23 PM, Matteo Croce wrote:
> From: Matteo Croce <[email protected]>
>
> 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 <[email protected]>
> ---
> 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.
> *
>