SEC("cgroup/skb") int bpf_map_lock_test(struct __sk_buff *skb)
{ struct hmap_elem *val; int rnd = bpf_get_prandom_u32(); int key = 0, err = 1, i; struct array_elem *q;
val = bpf_map_lookup_elem(&hash_map, &key); if (!val) goto err; /* spin_lock in hash map */
bpf_spin_lock(&val->lock); for (i = 0; i < VAR_NUM; i++)
val->var[i] = rnd;
bpf_spin_unlock(&val->lock);
/* spin_lock in array */
q = bpf_map_lookup_elem(&array_map, &key); if (!q) goto err;
bpf_spin_lock(&q->lock); for (i = 0; i < VAR_NUM; i++)
q->var[i] = rnd;
bpf_spin_unlock(&q->lock);
err = 0;
err: return err;
} char _license[] SEC("license") = "GPL";
Messung V0.5
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.