Thread (8 messages) flat view 8 messages, 3 authors, 2021-07-12

Re: [PATCH bpf v3 2/2] bpf, sockmap: sk_prot needs inuse_idx set for proc stats

From: Cong Wang <hidden>
Date: 2021-07-08 19:42:43
Also in: bpf

On Tue, Jul 6, 2021 at 9:31 AM John Fastabend [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Proc socket stats use sk_prot->inuse_idx value to record inuse sock stats.
We currently do not set this correctly from sockmap side. The result is
reading sock stats '/proc/net/sockstat' gives incorrect values. The
socket counter is incremented correctly, but because we don't set the
counter correctly when we replace sk_prot we may omit the decrement.

Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface")
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
---
 net/core/sock_map.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/net/core/sock_map.c b/net/core/sock_map.c
index 60decd6420ca..27bdf768aa8c 100644
--- a/net/core/sock_map.c
+++ b/net/core/sock_map.c
@@ -185,10 +185,19 @@ static void sock_map_unref(struct sock *sk, void *link_raw)

 static int sock_map_init_proto(struct sock *sk, struct sk_psock *psock)
 {
+       int err;
+#ifdef CONFIG_PROC_FS
+       int idx = sk->sk_prot->inuse_idx;
+#endif
A nit: Reverse XMAS tree declaration style is preferred for networking
subsystem.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help