Martin KaFai Lau 6ae9d5e99e bpf: Use bpf_mem_cache_alloc/free for bpf_local_storage
This patch uses bpf_mem_cache_alloc/free for allocating and freeing
bpf_local_storage for task and cgroup storage.

The changes are similar to the previous patch. A few things that
worth to mention for bpf_local_storage:

The local_storage is freed when the last selem is deleted.
Before deleting a selem from local_storage, it needs to retrieve the
local_storage->smap because the bpf_selem_unlink_storage_nolock()
may have set it to NULL. Note that local_storage->smap may have
already been NULL when the selem created this local_storage has
been removed. In this case, call_rcu will be used to free the
local_storage.
Also, the bpf_ma (true or false) value is needed before calling
bpf_local_storage_free(). The bpf_ma can either be obtained from
the local_storage->smap (if available) or any of its selem's smap.
A new helper check_storage_bpf_ma() is added to obtain
bpf_ma for a deleting bpf_local_storage.

When bpf_local_storage_alloc getting a reused memory, all
fields are either in the correct values or will be initialized.
'cache[]' must already be all NULLs. 'list' must be empty.
Others will be initialized.

Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://lore.kernel.org/r/20230322215246.1675516-4-martin.lau@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2023-03-25 19:52:52 -07:00
..
2022-12-02 11:25:00 +01:00
2022-12-21 14:31:52 -08:00
2023-02-24 14:34:12 -08:00
2023-02-23 14:00:10 -08:00
2023-02-21 10:45:51 -08:00
2023-02-23 13:49:45 -08:00
2023-03-06 20:36:39 -08:00
2022-08-29 19:47:03 -04:00
2022-01-11 13:08:21 -08:00
\n
2023-02-20 12:38:27 -08:00
2022-09-26 10:13:13 -07:00
2023-02-21 15:27:48 -08:00
2022-11-15 00:42:02 -08:00
2022-12-23 12:00:24 -08:00
2023-02-02 16:26:06 -08:00
2022-12-19 12:33:32 -06:00
2022-06-29 13:07:16 +02:00
2022-12-27 12:52:10 +01:00
2022-10-10 12:49:34 -07:00
2022-02-25 09:36:06 +01:00
2023-02-21 13:34:07 -08:00
2022-08-06 16:38:17 -07:00