All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin KaFai Lau <kafai@fb.com>
To: KP Singh <kpsingh@chromium.org>
Cc: <linux-kernel@vger.kernel.org>, <bpf@vger.kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Paul Turner <pjt@google.com>, Jann Horn <jannh@google.com>,
	Hao Luo <haoluo@google.com>
Subject: Re: [PATCH bpf-next 1/5] bpf: Implement task local storage
Date: Tue, 27 Oct 2020 18:22:06 -0700	[thread overview]
Message-ID: <20201028012206.zsa3udr7rqqe3q7y@kafai-mbp> (raw)
In-Reply-To: <20201027170317.2011119-2-kpsingh@chromium.org>

On Tue, Oct 27, 2020 at 06:03:13PM +0100, KP Singh wrote:
[ ... ] 

> diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
> index e6ceac3f7d62..bb443c4f3637 100644
> --- a/include/uapi/linux/bpf.h
> +++ b/include/uapi/linux/bpf.h
> @@ -157,6 +157,7 @@ enum bpf_map_type {
>  	BPF_MAP_TYPE_STRUCT_OPS,
>  	BPF_MAP_TYPE_RINGBUF,
>  	BPF_MAP_TYPE_INODE_STORAGE,
> +	BPF_MAP_TYPE_TASK_STORAGE,
>  };
>  
>  /* Note that tracing related programs such as
> @@ -3742,6 +3743,42 @@ union bpf_attr {
>   * 	Return
>   * 		The helper returns **TC_ACT_REDIRECT** on success or
>   * 		**TC_ACT_SHOT** on error.
> + *
> + * void *bpf_task_storage_get(struct bpf_map *map, void *task, void *value, u64 flags)
After peeking patch 2,  I think the pointer type should be
"struct task_struct *task" instead of "void *task".

Same for bpf_task_storage_delete().

> + *	Description
> + *		Get a bpf_local_storage from the *task*.
> + *
> + *		Logically, it could be thought of as getting the value from
> + *		a *map* with *task* as the **key**.  From this
> + *		perspective,  the usage is not much different from
> + *		**bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this
> + *		helper enforces the key must be an task_struct and the map must also
> + *		be a **BPF_MAP_TYPE_TASK_STORAGE**.
> + *
> + *		Underneath, the value is stored locally at *task* instead of
> + *		the *map*.  The *map* is used as the bpf-local-storage
> + *		"type". The bpf-local-storage "type" (i.e. the *map*) is
> + *		searched against all bpf_local_storage residing at *task*.
> + *
> + *		An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be
> + *		used such that a new bpf_local_storage will be
> + *		created if one does not exist.  *value* can be used
> + *		together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify
> + *		the initial value of a bpf_local_storage.  If *value* is
> + *		**NULL**, the new bpf_local_storage will be zero initialized.
> + *	Return
> + *		A bpf_local_storage pointer is returned on success.
> + *
> + *		**NULL** if not found or there was an error in adding
> + *		a new bpf_local_storage.
> + *
> + * int bpf_task_storage_delete(struct bpf_map *map, void *task)
> + *	Description
> + *		Delete a bpf_local_storage from a *task*.
> + *	Return
> + *		0 on success.
> + *
> + *		**-ENOENT** if the bpf_local_storage cannot be found.
>   */

  parent reply	other threads:[~2020-10-29  1:54 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-27 17:03 [PATCH bpf-next 0/5] Implement task_local_storage KP Singh
2020-10-27 17:03 ` [PATCH bpf-next 1/5] bpf: Implement task local storage KP Singh
2020-10-28  1:13   ` Martin KaFai Lau
2020-10-30 10:53     ` KP Singh
2020-11-03 14:46       ` KP Singh
2020-10-28  1:22   ` Martin KaFai Lau [this message]
2020-11-03 14:52     ` KP Singh
2020-10-29 23:12   ` Andrii Nakryiko
2020-10-30 11:02     ` KP Singh
2020-10-29 23:27   ` Song Liu
2020-10-30 11:07     ` KP Singh
2020-10-31  0:02       ` Song Liu
2020-10-27 17:03 ` [PATCH bpf-next 2/5] bpf: Implement get_current_task_btf and RET_PTR_TO_BTF_ID KP Singh
2020-10-28  1:27   ` Martin KaFai Lau
2020-10-31 18:45   ` kernel test robot
2020-10-31 18:45     ` kernel test robot
2020-10-31 18:45   ` [RFC PATCH] bpf: bpf_get_current_task_btf_proto can be static kernel test robot
2020-10-31 18:45     ` kernel test robot
2020-10-27 17:03 ` [PATCH bpf-next 3/5] bpf: Fix tests for local_storage KP Singh
2020-10-27 17:03 ` [PATCH bpf-next 4/5] bpf: Update selftests for local_storage to use vmlinux.h KP Singh
2020-10-27 17:03 ` [PATCH bpf-next 5/5] bpf: Add tests for task_local_storage KP Singh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201028012206.zsa3udr7rqqe3q7y@kafai-mbp \
    --to=kafai@fb.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=haoluo@google.com \
    --cc=jannh@google.com \
    --cc=kpsingh@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pjt@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.