В ядре карты eBPF могут быть определены как:
struct bpf_map_def SEC("maps") my_map = {
.type = BPF_MAP_TYPE_HASH,
.key_size = sizeof(uint32_t),
.value_size = sizeof(struct task_prov_struct),
.max_entries = 4096,
};
Если я заранее не знаю максимально возможный размер my_map
(я также не хочу тратить память впустую), есть ли способ, скажем, предварительно выделить небольшой размер и динамически увеличивать размер по мере необходимости? Я знаю о функции bpf_map__resize
, но, похоже, это функция пользовательского пространства, и ее можно вызывать только до загрузки карты. Я был бы признателен за любой образец кода или ссылку.