mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 12:14:10 +08:00
net-timestamp: namespacify the sysctl_tstamp_allow_data
Let it be tuned in per netns by admins. Signed-off-by: Jason Xing <kernelxing@tencent.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Link: https://patch.msgid.link/20241005222609.94980-1-kerneljasonxing@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
ada5c3229b
commit
da5e06dee5
@ -15,6 +15,7 @@ struct netns_core {
|
||||
int sysctl_somaxconn;
|
||||
int sysctl_optmem_max;
|
||||
u8 sysctl_txrehash;
|
||||
u8 sysctl_tstamp_allow_data;
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
struct prot_inuse __percpu *prot_inuse;
|
||||
|
@ -2824,8 +2824,6 @@ void sk_get_meminfo(const struct sock *sk, u32 *meminfo);
|
||||
extern __u32 sysctl_wmem_max;
|
||||
extern __u32 sysctl_rmem_max;
|
||||
|
||||
extern int sysctl_tstamp_allow_data;
|
||||
|
||||
extern __u32 sysctl_wmem_default;
|
||||
extern __u32 sysctl_rmem_default;
|
||||
|
||||
|
@ -317,6 +317,7 @@ static __net_init void preinit_net_sysctl(struct net *net)
|
||||
*/
|
||||
net->core.sysctl_optmem_max = 128 * 1024;
|
||||
net->core.sysctl_txrehash = SOCK_TXREHASH_ENABLED;
|
||||
net->core.sysctl_tstamp_allow_data = 1;
|
||||
}
|
||||
|
||||
/* init code that must occur even if setup_net() is not called. */
|
||||
|
@ -5506,7 +5506,7 @@ static bool skb_may_tx_timestamp(struct sock *sk, bool tsonly)
|
||||
{
|
||||
bool ret;
|
||||
|
||||
if (likely(READ_ONCE(sysctl_tstamp_allow_data) || tsonly))
|
||||
if (likely(tsonly || READ_ONCE(sock_net(sk)->core.sysctl_tstamp_allow_data)))
|
||||
return true;
|
||||
|
||||
read_lock_bh(&sk->sk_callback_lock);
|
||||
|
@ -286,8 +286,6 @@ EXPORT_SYMBOL(sysctl_rmem_max);
|
||||
__u32 sysctl_wmem_default __read_mostly = SK_WMEM_MAX;
|
||||
__u32 sysctl_rmem_default __read_mostly = SK_RMEM_MAX;
|
||||
|
||||
int sysctl_tstamp_allow_data __read_mostly = 1;
|
||||
|
||||
DEFINE_STATIC_KEY_FALSE(memalloc_socks_key);
|
||||
EXPORT_SYMBOL_GPL(memalloc_socks_key);
|
||||
|
||||
|
@ -491,15 +491,6 @@ static struct ctl_table net_core_table[] = {
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
{
|
||||
.procname = "tstamp_allow_data",
|
||||
.data = &sysctl_tstamp_allow_data,
|
||||
.maxlen = sizeof(int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec_minmax,
|
||||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = SYSCTL_ONE
|
||||
},
|
||||
#ifdef CONFIG_RPS
|
||||
{
|
||||
.procname = "rps_sock_flow_entries",
|
||||
@ -665,6 +656,15 @@ static struct ctl_table netns_core_table[] = {
|
||||
.extra2 = SYSCTL_ONE,
|
||||
.proc_handler = proc_dou8vec_minmax,
|
||||
},
|
||||
{
|
||||
.procname = "tstamp_allow_data",
|
||||
.data = &init_net.core.sysctl_tstamp_allow_data,
|
||||
.maxlen = sizeof(u8),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dou8vec_minmax,
|
||||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = SYSCTL_ONE
|
||||
},
|
||||
/* sysctl_core_net_init() will set the values after this
|
||||
* to readonly in network namespaces
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user