On Sat, May 9, 2020 at 10:07 PM Yonghong Song <yhs@xxxxxx> wrote: > > > > On 5/9/20 5:35 PM, Alexei Starovoitov wrote: > > On Sat, May 09, 2020 at 10:59:17AM -0700, Yonghong Song wrote: > >> @@ -6891,6 +6897,7 @@ static int bpf_object__collect_st_ops_relos(struct bpf_object *obj, > >> > >> #define BTF_TRACE_PREFIX "btf_trace_" > >> #define BTF_LSM_PREFIX "bpf_lsm_" > >> +#define BTF_ITER_PREFIX "__bpf_iter__" > >> #define BTF_MAX_NAME_SIZE 128 > > > > In the kernel source the prefix doesn't stand out, but on libbpf side it looks > > inconsistent. May be drop __ prefix and keep one _ in the suffix? > > Currently, I have context type as > struct bpf_iter__bpf_map > Based on the above proposal, we will have function name as > bpf_iter_bpf_map > It is quite similar to each other. My current usage to have > __bpf_iter__bpf_map > intends to make func name and struct type name quite different. > Or maybe > bpf_iter__bpf_map vs. bpf_iter_bpf_map > just fine as user should not care about func name > bpf_iter_bpf_map at all? Type names bpf_iter_bpf_map and bpf_iter_foo don't look unique, but I don't see why they should. If code really required type name uniqueness __bpf_iter__ prefix wouldn't provide that property anyway. I think bpf_iter_ falls into the same category of prefixes like those used by lsm, trace, struct_ops. Or I could be missing why iter has to be different.