aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGravatar Eric Dumazet <edumazet@google.com> 2022-06-08 23:34:08 -0700
committerGravatar Jakub Kicinski <kuba@kernel.org> 2022-06-10 16:21:26 -0700
commit0defbb0af775ef037913786048d099bbe8b9a2c2 (patch)
treeb25787bc499129fc43cba5c3e8af7e83c3880b42 /include
parentnet: remove SK_MEM_QUANTUM and SK_MEM_QUANTUM_SHIFT (diff)
downloadlinux-0defbb0af775ef037913786048d099bbe8b9a2c2.tar.gz
linux-0defbb0af775ef037913786048d099bbe8b9a2c2.tar.bz2
linux-0defbb0af775ef037913786048d099bbe8b9a2c2.zip
net: add per_cpu_fw_alloc field to struct proto
Each protocol having a ->memory_allocated pointer gets a corresponding per-cpu reserve, that following patches will use. Instead of having reserved bytes per socket, we want to have per-cpu reserves. Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Shakeel Butt <shakeelb@google.com> Acked-by: Soheil Hassas Yeganeh <soheil@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/net/sock.h1
-rw-r--r--include/net/tcp.h2
-rw-r--r--include/net/udp.h1
3 files changed, 4 insertions, 0 deletions
diff --git a/include/net/sock.h b/include/net/sock.h
index 298897bbfb3a..825f8cbf791f 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1254,6 +1254,7 @@ struct proto {
void (*enter_memory_pressure)(struct sock *sk);
void (*leave_memory_pressure)(struct sock *sk);
atomic_long_t *memory_allocated; /* Current allocated memory. */
+ int __percpu *per_cpu_fw_alloc;
struct percpu_counter *sockets_allocated; /* Current number of sockets. */
/*
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 1e99f5c61f84..4794cae4577e 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -253,6 +253,8 @@ extern long sysctl_tcp_mem[3];
#define TCP_RACK_NO_DUPTHRESH 0x4 /* Do not use DUPACK threshold in RACK */
extern atomic_long_t tcp_memory_allocated;
+DECLARE_PER_CPU(int, tcp_memory_per_cpu_fw_alloc);
+
extern struct percpu_counter tcp_sockets_allocated;
extern unsigned long tcp_memory_pressure;
diff --git a/include/net/udp.h b/include/net/udp.h
index b83a00330566..b60eea2e3fae 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -95,6 +95,7 @@ static inline struct udp_hslot *udp_hashslot2(struct udp_table *table,
extern struct proto udp_prot;
extern atomic_long_t udp_memory_allocated;
+DECLARE_PER_CPU(int, udp_memory_per_cpu_fw_alloc);
/* sysctl variables for udp */
extern long sysctl_udp_mem[3];