Thread (7 messages) 7 messages, 4 authors, 2020-07-29

Re: [PATCH v4 bpf 2/2] selftests/bpf: extend map-in-map selftest to detect memory leaks

From: Daniel Borkmann <daniel@iogearbox.net>
Date: 2020-07-29 21:17:13
Also in: bpf, stable

On 7/29/20 7:48 PM, Andrii Nakryiko wrote:
On Wed, Jul 29, 2020 at 7:29 AM Jakub Sitnicki [off-list ref] wrote:
quoted
On Wed, Jul 29, 2020 at 06:09 AM CEST, Andrii Nakryiko wrote:
quoted
Add test validating that all inner maps are released properly after skeleton
is destroyed. To ensure determinism, trigger kernel-side synchronize_rcu()
before checking map existence by their IDs.

Acked-by: Song Liu <redacted>
Signed-off-by: Andrii Nakryiko <redacted>
[...]
quoted
quoted
+/*
+ * Trigger synchronize_cpu() in kernel.
Nit: synchronize_*r*cu().
welp, yeah
quoted
quoted
+ *
+ * ARRAY_OF_MAPS/HASH_OF_MAPS lookup/update operations trigger
+ * synchronize_rcu(), if looking up/updating non-NULL element. Use this fact
+ * to trigger synchronize_cpu(): create map-in-map, create a trivial ARRAY
+ * map, update map-in-map with ARRAY inner map. Then cleanup. At the end, at
+ * least one synchronize_rcu() would be called.
+ */
That's a cool trick. I'm a bit confused by "looking up/updating non-NULL
element". It looks like you're updating an element that is NULL/unset in
the code below. What am I missing?
I was basically trying to say that it has to be a successful lookup or
update. For lookup that means looking up non-NULL (existing) entry.
For update -- setting valid inner map FD.

Not sure fixing this and typo above is worth it to post v5.
Nope, I'll fix it up while applying.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help