diff options
author | KP Singh <kpsingh@google.com> | 2020-11-06 13:37:40 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2020-11-06 19:08:37 +0300 |
commit | 4cf1bc1f10452065a29d576fc5693fc4fab5b919 (patch) | |
tree | 142a7cf6f1baf696dc72b54d510a59823ca139eb /include/linux/bpf_types.h | |
parent | 9e7a4d9831e836eb03dedab89902277ee94eb7a6 (diff) | |
download | linux-4cf1bc1f10452065a29d576fc5693fc4fab5b919.tar.xz |
bpf: Implement task local storage
Similar to bpf_local_storage for sockets and inodes add local storage
for task_struct.
The life-cycle of storage is managed with the life-cycle of the
task_struct. i.e. the storage is destroyed along with the owning task
with a callback to the bpf_task_storage_free from the task_free LSM
hook.
The BPF LSM allocates an __rcu pointer to the bpf_local_storage in
the security blob which are now stackable and can co-exist with other
LSMs.
The userspace map operations can be done by using a pid fd as a key
passed to the lookup, update and delete operations.
Signed-off-by: KP Singh <kpsingh@google.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/20201106103747.2780972-3-kpsingh@chromium.org
Diffstat (limited to 'include/linux/bpf_types.h')
-rw-r--r-- | include/linux/bpf_types.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/bpf_types.h b/include/linux/bpf_types.h index 2e6f568377f1..99f7fd657d87 100644 --- a/include/linux/bpf_types.h +++ b/include/linux/bpf_types.h @@ -109,6 +109,7 @@ BPF_MAP_TYPE(BPF_MAP_TYPE_SOCKHASH, sock_hash_ops) #endif #ifdef CONFIG_BPF_LSM BPF_MAP_TYPE(BPF_MAP_TYPE_INODE_STORAGE, inode_storage_map_ops) +BPF_MAP_TYPE(BPF_MAP_TYPE_TASK_STORAGE, task_storage_map_ops) #endif BPF_MAP_TYPE(BPF_MAP_TYPE_CPUMAP, cpu_map_ops) #if defined(CONFIG_XDP_SOCKETS) |