| /linux/tools/testing/selftests/bpf/prog_tests/ |
| H A D | user_ringbuf.c | 31 static int write_samples(struct user_ring_buffer *ringbuf, uint32_t num_samples) in write_samples() argument 40 entry = user_ring_buffer__reserve(ringbuf, sizeof(*entry)); in write_samples() 57 user_ring_buffer__discard(ringbuf, entry); in write_samples() 61 user_ring_buffer__submit(ringbuf, entry); in write_samples() 238 struct user_ring_buffer *ringbuf; in test_user_ringbuf_post_misaligned() local 242 err = load_skel_create_user_ringbuf(&skel, &ringbuf); in test_user_ringbuf_post_misaligned() 247 user_ring_buffer__free(ringbuf); in test_user_ringbuf_post_misaligned() 254 struct user_ring_buffer *ringbuf; in test_user_ringbuf_post_producer_wrong_offset() local 258 err = load_skel_create_user_ringbuf(&skel, &ringbuf); in test_user_ringbuf_post_producer_wrong_offset() 263 user_ring_buffer__free(ringbuf); in test_user_ringbuf_post_producer_wrong_offset() [all …]
|
| H A D | ringbuf.c | 68 static struct ring_buffer *ringbuf; 87 return (void *)(long)ring_buffer__poll(ringbuf, timeout); in poll_thread() 101 skel->maps.ringbuf.max_entries = 0x40000; in ringbuf_write_subtest() 107 rb_fd = skel->maps.ringbuf.map_fd; in ringbuf_write_subtest() 117 ringbuf = ring_buffer__new(rb_fd, process_sample, NULL, NULL); in ringbuf_write_subtest() 118 if (!ASSERT_OK_PTR(ringbuf, "ringbuf_new")) in ringbuf_write_subtest() 137 ring_buffer__free(ringbuf); in ringbuf_write_subtest() 158 skel->maps.ringbuf.max_entries = page_size; in ringbuf_subtest() 164 rb_fd = skel->maps.ringbuf.map_fd; in ringbuf_subtest() 213 ringbuf in ringbuf_subtest() 67 static struct ring_buffer *ringbuf; global() variable [all...] |
| H A D | ringbuf_multi.c | 44 struct ring_buffer *ringbuf = NULL; in test_ringbuf_multi() local 84 ringbuf = ring_buffer__new(bpf_map__fd(skel->maps.ringbuf1), in test_ringbuf_multi() 86 if (CHECK(!ringbuf, "ringbuf_create", "failed to create ringbuf\n")) in test_ringbuf_multi() 90 ring = ring_buffer__ring(ringbuf, 0); in test_ringbuf_multi() 94 ring = ring_buffer__ring(ringbuf, 1); in test_ringbuf_multi() 97 err = ring_buffer__add(ringbuf, bpf_map__fd(skel->maps.ringbuf2), in test_ringbuf_multi() 103 ring = ring_buffer__ring(ringbuf, 0); in test_ringbuf_multi() 126 err = ring_buffer__poll(ringbuf, -1); in test_ringbuf_multi() 131 err = ring_buffer__poll(ringbuf, 0); in test_ringbuf_multi() 145 ring_buffer__free(ringbuf); in test_ringbuf_multi()
|
| H A D | test_ima.c | 68 struct ring_buffer *ringbuf = NULL; in test_test_ima() local 80 ringbuf = ring_buffer__new(bpf_map__fd(skel->maps.ringbuf), in test_test_ima() 82 if (!ASSERT_OK_PTR(ringbuf, "ringbuf")) in test_test_ima() 108 err = ring_buffer__consume(ringbuf); in test_test_ima() 123 err = ring_buffer__consume(ringbuf); in test_test_ima() 154 err = ring_buffer__consume(ringbuf); in test_test_ima() 181 err = ring_buffer__consume(ringbuf); in test_test_ima() 212 err = ring_buffer__consume(ringbuf); in test_test_ima() 230 err = ring_buffer__consume(ringbuf); in test_test_ima() 238 ring_buffer__free(ringbuf); in test_test_ima()
|
| H A D | unpriv_bpf_disabled.c | 64 struct ring_buffer *ringbuf = NULL; in test_unpriv_bpf_disabled_positive() local 83 ringbuf = ring_buffer__new(bpf_map__fd(skel->maps.ringbuf), process_ringbuf, NULL, NULL); in test_unpriv_bpf_disabled_positive() 84 if (!ASSERT_OK_PTR(ringbuf, "ring_buffer__new")) in test_unpriv_bpf_disabled_positive() 92 ASSERT_EQ(ring_buffer__consume(ringbuf), 1, "ring_buffer__consume"); in test_unpriv_bpf_disabled_positive() 138 if (ringbuf) in test_unpriv_bpf_disabled_positive() 139 ring_buffer__free(ringbuf); in test_unpriv_bpf_disabled_positive() 252 map_fds[5] = bpf_map__fd(skel->maps.ringbuf); in test_unpriv_bpf_disabled()
|
| /linux/tools/testing/selftests/bpf/progs/ |
| H A D | dynptr_fail.c | 58 } ringbuf SEC(".maps"); 86 bpf_ringbuf_reserve_dynptr(&ringbuf, val, 0, &ptr); in ringbuf_missing_release1() 100 bpf_ringbuf_reserve_dynptr(&ringbuf, sizeof(*sample), 0, &ptr1); in ringbuf_missing_release2() 101 bpf_ringbuf_reserve_dynptr(&ringbuf, sizeof(*sample), 0, &ptr2); in ringbuf_missing_release2() 121 bpf_ringbuf_reserve_dynptr(&ringbuf, val, 0, &ptr); in missing_release_callback_fn() 158 bpf_ringbuf_reserve_dynptr(&ringbuf, sizeof(read_data), 0, &ptr); in use_after_invalid() 170 /* Can't call non-dynptr ringbuf APIs on a dynptr ringbuf sample */ 178 bpf_ringbuf_reserve_dynptr(&ringbuf, sizeof(*sample), 0, &ptr); in ringbuf_invalid_api() 201 bpf_ringbuf_reserve_dynptr(&ringbuf, va in add_dynptr_to_map1() [all...] |
| H A D | test_ringbuf.c | 19 } ringbuf SEC(".maps"); 48 sample = bpf_ringbuf_reserve(&ringbuf, sizeof(*sample), 0); in test_ringbuf() 63 bpf_ringbuf_output(&ringbuf, sample, sizeof(*sample), flags); in test_ringbuf() 71 avail_data = bpf_ringbuf_query(&ringbuf, BPF_RB_AVAIL_DATA); in test_ringbuf() 72 ring_size = bpf_ringbuf_query(&ringbuf, BPF_RB_RING_SIZE); in test_ringbuf() 73 cons_pos = bpf_ringbuf_query(&ringbuf, BPF_RB_CONS_POS); in test_ringbuf() 74 prod_pos = bpf_ringbuf_query(&ringbuf, BPF_RB_PROD_POS); in test_ringbuf()
|
| H A D | ringbuf_bench.c | 14 } ringbuf SEC(".maps"); 36 sz = bpf_ringbuf_query(&ringbuf, BPF_RB_AVAIL_DATA); in bench_ringbuf() 48 sample = bpf_ringbuf_reserve(&ringbuf, in bench_ringbuf() 63 if (bpf_ringbuf_output(&ringbuf, &sample_val,
|
| H A D | test_ringbuf_write.c | 11 } ringbuf SEC(".maps"); 29 sample1 = bpf_ringbuf_reserve(&ringbuf, 0x30000, 0); in test_ringbuf_write() 33 sample2 = bpf_ringbuf_reserve(&ringbuf, 0x30000, 0); in test_ringbuf_write()
|
| H A D | dynptr_success.c | 28 } ringbuf SEC(".maps"); 48 bpf_ringbuf_reserve_dynptr(&ringbuf, sizeof(write_data), 0, &ptr); in test_read_write() 150 err = bpf_ringbuf_reserve_dynptr(&ringbuf, val, 0, &ptr); in test_ringbuf() 280 err = bpf_ringbuf_reserve_dynptr(&ringbuf, bytes, 0, &ptr); in test_adjust_err() 332 if (bpf_ringbuf_reserve_dynptr(&ringbuf, size, 0, &ptr)) { in test_zero_size_dynptr() 369 * a ringbuf dynptr works in test_zero_size_dynptr() 389 if (bpf_ringbuf_reserve_dynptr(&ringbuf, size, 0, &ptr)) { in test_dynptr_is_null() 440 if (bpf_ringbuf_reserve_dynptr(&ringbuf, size, 123, &ptr1) != -EINVAL) { in test_dynptr_is_rdonly() 452 if (bpf_ringbuf_reserve_dynptr(&ringbuf, size, 0, &ptr2)) { in test_dynptr_is_rdonly() 502 if (bpf_ringbuf_reserve_dynptr(&ringbuf, 6 in test_dynptr_clone() [all...] |
| H A D | test_ringbuf_n.c | 22 } ringbuf SEC(".maps"); 36 sample = bpf_ringbuf_reserve(&ringbuf, sizeof(*sample), 0); in test_ringbuf_n()
|
| H A D | test_ringbuf_map_key.c | 19 } ringbuf SEC(".maps"); 44 sample = bpf_ringbuf_reserve(&ringbuf, sizeof(*sample), 0); in test_ringbuf_mem_map_key()
|
| H A D | ima.c | 17 } ringbuf SEC(".maps"); 44 sample = bpf_ringbuf_reserve(&ringbuf, sizeof(u64), 0); in ima_test_common()
|
| H A D | test_unpriv_bpf_disabled.c | 52 } ringbuf SEC(".maps"); 72 bpf_ringbuf_output(&ringbuf, &ringbuf_val, sizeof(ringbuf_val), 0); in sys_nanosleep_enter()
|
| H A D | user_ringbuf_fail.c | 25 } ringbuf SEC(".maps"); 205 bpf_ringbuf_reserve_dynptr(&ringbuf, 8, 0, dynptr); in try_reinit_dynptr_ringbuf()
|
| H A D | test_d_path_check_types.c | 12 } ringbuf SEC(".maps");
|
| H A D | test_kfunc_dynptr_param.c | 24 } ringbuf SEC(".maps");
|
| H A D | verifier_iterating_callbacks.c | 15 } ringbuf SEC(".maps"); 145 bpf_user_ringbuf_drain(&ringbuf, ringbuf_drain_cb, &loop_ctx, 0); in unsafe_ringbuf_drain()
|
| H A D | map_ptr_kern.c | 660 struct bpf_ringbuf_map *ringbuf = (struct bpf_ringbuf_map *)&m_ringbuf; in check_ringbuf() local 663 VERIFY(check(&ringbuf->map, map, 0, 0, page_size)); in check_ringbuf()
|
| /linux/tools/testing/selftests/bpf/benchs/ |
| H A D | bench_ringbufs.c | 19 int ringbuf_sz; /* per-ringbuf, in bytes */ 163 struct ring_buffer *ringbuf; 180 struct bpf_map *ringbuf; in ringbuf_libbpf_setup() 199 ringbuf = skel->maps.ringbuf; in ringbuf_libbpf_consumer() 201 flags = bpf_map__map_flags(ringbuf) | BPF_F_RB_OVERWRITE; 202 bpf_map__set_map_flags(ringbuf, flags); 205 bpf_map__set_max_entries(ringbuf, args.ringbuf_sz); 229 map_fd = bpf_map__fd(ctx->skel->maps.ringbuf); in ringbuf_custom_setup() 230 ctx->ringbuf in ringbuf_custom_setup() 124 struct ring_buffer *ringbuf; global() member 213 struct ringbuf_custom ringbuf; global() member [all...] |
| /linux/Documentation/bpf/ |
| H A D | other.rst | 8 ringbuf
|
| H A D | ringbuf.rst | 42 Additionally, given the performance of BPF ringbuf, many use cases would just 84 BPF ringbuf provides two sets of APIs to BPF programs: 194 Another feature that distinguishes BPF ringbuf from perf ring buffer is
|
| /linux/drivers/gpu/drm/panthor/ |
| H A D | panthor_sched.c | 394 struct panthor_kernel_bo *ringbuf; member 830 } ringbuf; member 931 panthor_kernel_bo_destroy(queue->ringbuf); in group_free_queue() 1197 cs_iface->input->ringbuf_base = panthor_kernel_bo_gpuva(queue->ringbuf); in cs_slot_prog_locked() 1198 cs_iface->input->ringbuf_size = panthor_kernel_bo_size(queue->ringbuf); in cs_slot_prog_locked() 1547 if (cs_extract >= job->ringbuf.end) in cs_slot_process_fault_event_locked() 1550 if (cs_extract < job->ringbuf.start) in cs_slot_process_fault_event_locked() 3136 u64 ringbuf_size = panthor_kernel_bo_size(queue->ringbuf); in copy_instrs_to_ringbuf() 3137 u64 start = job->ringbuf.start & (ringbuf_size - 1); in copy_instrs_to_ringbuf() 3150 memcpy(queue->ringbuf->kmap + start, instrs->buffer, written); in copy_instrs_to_ringbuf() [all …]
|
| /linux/kernel/bpf/ |
| H A D | Makefile | 12 obj-$(CONFIG_BPF_SYSCALL) += local_storage.o queue_stack_maps.o ringbuf.o bpf_insn_array.o
|
| /linux/tools/bpf/bpftool/Documentation/ |
| H A D | bpftool-map.rst | 57 | | **queue** | **stack** | **sk_storage** | **struct_ops** | **ringbuf** | **inode_storage**
|