Commit 9bc95a95 authored by Yonghong Song's avatar Yonghong Song Committed by Alexei Starovoitov
Browse files

bpf: Mark BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE deprecated



Now 'BPF_MAP_TYPE_CGRP_STORAGE + local percpu ptr'
can cover all BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE functionality
and more. So mark BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE deprecated.
Also make changes in selftests/bpf/test_bpftool_synctypes.py
and selftest libbpf_str to fix otherwise test errors.

Signed-off-by: default avatarYonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20230827152837.2003563-1-yonghong.song@linux.dev


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 1bd79317
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -932,7 +932,14 @@ enum bpf_map_type {
	 */
	BPF_MAP_TYPE_CGROUP_STORAGE = BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
	BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED,
	/* BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE is available to bpf programs
	 * attaching to a cgroup. The new mechanism (BPF_MAP_TYPE_CGRP_STORAGE +
	 * local percpu kptr) supports all BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE
	 * functionality and more. So mark * BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE
	 * deprecated.
	 */
	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED,
	BPF_MAP_TYPE_QUEUE,
	BPF_MAP_TYPE_STACK,
	BPF_MAP_TYPE_SK_STORAGE,
+8 −1
Original line number Diff line number Diff line
@@ -932,7 +932,14 @@ enum bpf_map_type {
	 */
	BPF_MAP_TYPE_CGROUP_STORAGE = BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
	BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED,
	/* BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE is available to bpf programs
	 * attaching to a cgroup. The new mechanism (BPF_MAP_TYPE_CGRP_STORAGE +
	 * local percpu kptr) supports all BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE
	 * functionality and more. So mark * BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE
	 * deprecated.
	 */
	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED,
	BPF_MAP_TYPE_QUEUE,
	BPF_MAP_TYPE_STACK,
	BPF_MAP_TYPE_SK_STORAGE,
+5 −1
Original line number Diff line number Diff line
@@ -142,10 +142,14 @@ static void test_libbpf_bpf_map_type_str(void)
		/* Special case for map_type_name BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED
		 * where it and BPF_MAP_TYPE_CGROUP_STORAGE have the same enum value
		 * (map_type). For this enum value, libbpf_bpf_map_type_str() picks
		 * BPF_MAP_TYPE_CGROUP_STORAGE.
		 * BPF_MAP_TYPE_CGROUP_STORAGE. The same for
		 * BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED and
		 * BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE.
		 */
		if (strcmp(map_type_name, "BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED") == 0)
			continue;
		if (strcmp(map_type_name, "BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED") == 0)
			continue;

		ASSERT_STREQ(buf, map_type_name, "exp_str_value");
	}
+9 −0
Original line number Diff line number Diff line
@@ -509,6 +509,15 @@ def main():
    source_map_types.remove('cgroup_storage_deprecated')
    source_map_types.add('cgroup_storage')

    # The same applied to BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED and
    # BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE which share the same enum value
    # and source_map_types picks
    # BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED/percpu_cgroup_storage_deprecated.
    # Replace 'percpu_cgroup_storage_deprecated' with 'percpu_cgroup_storage'
    # so it aligns with what `bpftool map help` shows.
    source_map_types.remove('percpu_cgroup_storage_deprecated')
    source_map_types.add('percpu_cgroup_storage')

    help_map_types = map_info.get_map_help()
    help_map_options = map_info.get_options()
    map_info.close()