mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-07 15:01:44 +00:00
samples/bpf: load_bpf.c make callback fixup more flexible
Do this change before others start to use this callback.
Change map_perf_test_user.c which seems to be the only user.
This patch extends capabilities of commit 9fd63d05f3
("bpf:
Allow bpf sample programs (*_user.c) to change bpf_map_def").
Give fixup callback access to struct bpf_map_data, instead of
only stuct bpf_map_def. This add flexibility to allow userspace
to reassign the map file descriptor. This is very useful when
wanting to share maps between several bpf programs.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
156450d9d9
commit
6979bcc731
3 changed files with 23 additions and 18 deletions
|
@ -320,21 +320,21 @@ static void fill_lpm_trie(void)
|
|||
assert(!r);
|
||||
}
|
||||
|
||||
static void fixup_map(struct bpf_map_def *map, const char *name, int idx)
|
||||
static void fixup_map(struct bpf_map_data *map, int idx)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!strcmp("inner_lru_hash_map", name)) {
|
||||
if (!strcmp("inner_lru_hash_map", map->name)) {
|
||||
inner_lru_hash_idx = idx;
|
||||
inner_lru_hash_size = map->max_entries;
|
||||
inner_lru_hash_size = map->def.max_entries;
|
||||
}
|
||||
|
||||
if (!strcmp("array_of_lru_hashs", name)) {
|
||||
if (!strcmp("array_of_lru_hashs", map->name)) {
|
||||
if (inner_lru_hash_idx == -1) {
|
||||
printf("inner_lru_hash_map must be defined before array_of_lru_hashs\n");
|
||||
exit(1);
|
||||
}
|
||||
map->inner_map_idx = inner_lru_hash_idx;
|
||||
map->def.inner_map_idx = inner_lru_hash_idx;
|
||||
array_of_lru_hashs_idx = idx;
|
||||
}
|
||||
|
||||
|
@ -345,9 +345,9 @@ static void fixup_map(struct bpf_map_def *map, const char *name, int idx)
|
|||
|
||||
/* Only change the max_entries for the enabled test(s) */
|
||||
for (i = 0; i < NR_TESTS; i++) {
|
||||
if (!strcmp(test_map_names[i], name) &&
|
||||
if (!strcmp(test_map_names[i], map->name) &&
|
||||
(check_test_flags(i))) {
|
||||
map->max_entries = num_map_entries;
|
||||
map->def.max_entries = num_map_entries;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue