Lines Matching refs:key

42 static int bpf_map_lookup_elem_with_ref_bit(int fd, unsigned long long key,
48 BPF_LD_IMM64(BPF_REG_3, key),
103 printf("key:%llu not found from map. %s(%d)\n",
108 printf("key:%llu value0:%llu != value1:%llu\n",
141 * Add key=1 (+1 key)
142 * Add key=2 (+1 key)
146 * Iterate map. Only found key=1 and key=3
150 unsigned long long key, value[nr_cpus];
170 /* insert key=1 element */
172 key = 1;
173 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
174 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
178 assert(bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST) == -EEXIST);
179 /* key=1 already exists */
181 assert(bpf_map_update_elem(lru_map_fd, &key, value, -1) == -EINVAL);
183 /* insert key=2 element */
185 /* check that key=2 is not found */
186 key = 2;
187 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
190 assert(bpf_map_update_elem(lru_map_fd, &key, value, BPF_EXIST) == -ENOENT);
191 /* key=2 is not there */
193 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
195 /* insert key=3 element */
197 /* check that key=3 is not found */
198 key = 3;
199 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
201 /* check that key=1 can be found and mark the ref bit to
202 * stop LRU from removing key=1
204 key = 1;
205 assert(!bpf_map_lookup_elem_with_ref_bit(lru_map_fd, key, value));
208 key = 3;
209 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
210 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
213 /* key=2 has been removed from the LRU */
214 key = 2;
215 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
217 /* lookup elem key=1 and delete it, then check it doesn't exist */
218 key = 1;
219 assert(!bpf_map_lookup_and_delete_elem(lru_map_fd, &key, &value));
223 assert(!bpf_map_delete_elem(expected_map_fd, &key));
241 unsigned long long key, end_key, value[nr_cpus];
270 for (key = 1; key < end_key; key++)
271 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
276 for (key = 1; key < end_key; key++) {
277 assert(!bpf_map_lookup_elem_with_ref_bit(lru_map_fd, key, value));
278 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
286 key = 1 + tgt_free;
287 end_key = key + tgt_free;
288 for (; key < end_key; key++) {
289 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
291 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
317 unsigned long long key, value[nr_cpus];
347 for (key = 1; key < end_key; key++)
348 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
359 * Hence, the oldest key 1 to tgt_free/2
362 key = 1;
364 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
366 assert(!bpf_map_delete_elem(lru_map_fd, &key));
368 assert(bpf_map_update_elem(lru_map_fd, &key, value,
377 for (key = 1; key < end_key; key++) {
378 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
379 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
381 assert(!bpf_map_lookup_elem_with_ref_bit(lru_map_fd, key, value));
383 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
391 for (key = 1 + tgt_free; key < end_key; key++)
395 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
399 end_key = key + tgt_free;
400 for (; key < end_key; key++) {
401 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
403 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
418 * Lookup key 1 to tgt_free*3/2
420 * => key 1+tgt_free*3/2 to 2*tgt_free are removed from LRU
424 unsigned long long key, end_key, value[nr_cpus];
453 for (key = 1; key < end_key; key++)
454 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
457 /* Lookup key 1 to tgt_free*3/2 */
459 for (key = 1; key < end_key; key++) {
460 assert(!bpf_map_lookup_elem_with_ref_bit(lru_map_fd, key, value));
461 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
468 key = 2 * tgt_free + 1;
469 end_key = key + batch_size;
470 for (; key < end_key; key++) {
471 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
473 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
489 unsigned long long key, value[nr_cpus];
511 for (key = 1; key <= 2 * tgt_free; key++)
512 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
515 key = 1;
516 assert(bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
518 for (key = 1; key <= tgt_free; key++) {
519 assert(!bpf_map_lookup_elem_with_ref_bit(lru_map_fd, key, value));
520 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
524 for (; key <= 2 * tgt_free; key++) {
525 assert(!bpf_map_delete_elem(lru_map_fd, &key));
526 assert(bpf_map_delete_elem(lru_map_fd, &key));
529 end_key = key + 2 * tgt_free;
530 for (; key < end_key; key++) {
531 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
533 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
547 unsigned long long key, value[nr_cpus];
549 /* Ensure the last key inserted by previous CPU can be found */
553 key = last_key + 1;
554 assert(!bpf_map_update_elem(map_fd, &key, value, BPF_NOEXIST));
555 assert(!bpf_map_lookup_elem_with_ref_bit(map_fd, key, value));
557 /* Cannot find the last key because it was removed by LRU */
564 unsigned long long key, value[nr_cpus];
578 key = 0;
579 assert(!bpf_map_update_elem(map_fd, &key, value, BPF_NOEXIST));
586 do_test_lru_sanity5(key, map_fd);
589 printf("couldn't spawn process to test key:%llu\n",
590 key);
597 key++;
602 /* At least one key should be tested */
603 assert(key > 0);
612 unsigned long long key, value[nr_cpus];
632 for (key = 1; key <= tgt_free; key++) {
633 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
635 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
639 for (; key <= tgt_free * 2; key++) {
642 /* Make ref bit sticky for key: [1, tgt_free] */
648 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
652 for (; key <= tgt_free * 3; key++) {
653 assert(!bpf_map_update_elem(lru_map_fd, &key, value,
655 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
668 * Add key=1 (+1 key)
669 * Add key=2 (+1 key)
674 * Iterate map. Only found key=1 and key=3
678 unsigned long long key, value[nr_cpus];
698 /* insert key=1 element */
700 key = 1;
701 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
702 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
706 assert(bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST) == -EEXIST);
707 /* key=1 already exists */
709 /* insert key=2 element */
711 /* check that key=2 is not found */
712 key = 2;
713 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
716 assert(bpf_map_update_elem(lru_map_fd, &key, value, BPF_EXIST) == -ENOENT);
717 /* key=2 is not there */
719 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
721 /* insert key=3 element */
723 /* check that key=3 is not found */
724 key = 3;
725 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
727 /* check that key=1 can be found and mark the ref bit to
728 * stop LRU from removing key=1
730 key = 1;
731 assert(!bpf_map_lookup_elem_with_ref_bit(lru_map_fd, key, value));
734 /* check that key=2 can be found and do _not_ mark ref bit.
737 key = 2;
738 assert(!bpf_map_lookup_elem(lru_map_fd, &key, value));
741 key = 3;
742 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
743 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
746 /* key=2 has been removed from the LRU */
747 key = 2;
748 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
759 * Add key=1 (+1 key)
760 * Add key=2 (+1 key)
765 * Iterate map. Only found key=2 and key=3
769 unsigned long long key, value[nr_cpus];
789 /* insert key=1 element */
791 key = 1;
792 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
795 assert(bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST) == -EEXIST);
796 /* key=1 already exists */
798 /* insert key=2 element */
800 /* check that key=2 is not found */
801 key = 2;
802 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
805 assert(bpf_map_update_elem(lru_map_fd, &key, value, BPF_EXIST) == -ENOENT);
806 /* key=2 is not there */
808 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
809 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
812 /* insert key=3 element */
814 /* check that key=3 is not found */
815 key = 3;
816 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);
818 /* check that key=1 can be found and do _not_ mark ref bit.
821 key = 1;
822 assert(!bpf_map_lookup_elem(lru_map_fd, &key, value));
825 /* check that key=2 can be found and mark the ref bit to
826 * stop LRU from removing key=2
828 key = 2;
829 assert(!bpf_map_lookup_elem_with_ref_bit(lru_map_fd, key, value));
832 key = 3;
833 assert(!bpf_map_update_elem(lru_map_fd, &key, value, BPF_NOEXIST));
834 assert(!bpf_map_update_elem(expected_map_fd, &key, value,
837 /* key=1 has been removed from the LRU */
838 key = 1;
839 assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -ENOENT);