mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 10:43:43 +00:00
net: rename busy poll socket op and globals
Rename LL_SO to BUSY_POLL_SO Rename sysctl_net_ll_{read,poll} to sysctl_busy_{read,poll} Fix up users of these variables. Fix documentation for sysctl. a patch for the socket.7 man page will follow separately, because of limitations of my mail setup. Signed-off-by: Eliezer Tamir <eliezer.tamir@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8b80cda536
commit
64b0dc517e
@ -50,26 +50,27 @@ The maximum number of packets that kernel can handle on a NAPI interrupt,
|
||||
it's a Per-CPU variable.
|
||||
Default: 64
|
||||
|
||||
low_latency_read
|
||||
busy_read
|
||||
----------------
|
||||
Low latency busy poll timeout for socket reads. (needs CONFIG_NET_LL_RX_POLL)
|
||||
Approximate time in us to busy loop waiting for packets on the device queue.
|
||||
This sets the default value of the SO_LL socket option.
|
||||
Can be set or overridden per socket by setting socket option SO_LL, which is
|
||||
the preferred method of enabling.
|
||||
If you need to enable the feature globally via sysctl, a value of 50 is recommended.
|
||||
This sets the default value of the SO_BUSY_POLL socket option.
|
||||
Can be set or overridden per socket by setting socket option SO_BUSY_POLL,
|
||||
which is the preferred method of enabling. If you need to enable the feature
|
||||
globally via sysctl, a value of 50 is recommended.
|
||||
Will increase power usage.
|
||||
Default: 0 (off)
|
||||
|
||||
low_latency_poll
|
||||
busy_poll
|
||||
----------------
|
||||
Low latency busy poll timeout for poll and select. (needs CONFIG_NET_LL_RX_POLL)
|
||||
Approximate time in us to busy loop waiting for events.
|
||||
Recommended value depends on the number of sockets you poll on.
|
||||
For several sockets 50, for several hundreds 100.
|
||||
For more than that you probably want to use epoll.
|
||||
Note that only sockets with SO_LL set will be busy polled, so you want to either
|
||||
selectively set SO_LL on those sockets or set sysctl.net.low_latency_read globally.
|
||||
Note that only sockets with SO_BUSY_POLL set will be busy polled,
|
||||
so you want to either selectively set SO_BUSY_POLL on those sockets or set
|
||||
sysctl.net.busy_read globally.
|
||||
Will increase power usage.
|
||||
Default: 0 (off)
|
||||
|
||||
|
@ -81,6 +81,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _UAPI_ASM_SOCKET_H */
|
||||
|
@ -74,6 +74,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* __ASM_AVR32_SOCKET_H */
|
||||
|
@ -76,7 +76,7 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
|
@ -74,7 +74,7 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
|
@ -74,6 +74,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
@ -83,6 +83,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _ASM_IA64_SOCKET_H */
|
||||
|
@ -74,6 +74,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _ASM_M32R_SOCKET_H */
|
||||
|
@ -92,6 +92,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _UAPI_ASM_SOCKET_H */
|
||||
|
@ -74,6 +74,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
@ -73,7 +73,7 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 0x4026
|
||||
|
||||
#define SO_LL 0x4027
|
||||
#define SO_BUSY_POLL 0x4027
|
||||
|
||||
/* O_NONBLOCK clashes with the bits used for socket types. Therefore we
|
||||
* have to define SOCK_NONBLOCK to a different value here.
|
||||
|
@ -81,6 +81,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _ASM_POWERPC_SOCKET_H */
|
||||
|
@ -80,6 +80,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
@ -70,7 +70,7 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 0x0029
|
||||
|
||||
#define SO_LL 0x0030
|
||||
#define SO_BUSY_POLL 0x0030
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define SO_SECURITY_AUTHENTICATION 0x5001
|
||||
|
@ -85,6 +85,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _XTENSA_SOCKET_H */
|
||||
|
@ -30,8 +30,8 @@
|
||||
#ifdef CONFIG_NET_LL_RX_POLL
|
||||
|
||||
struct napi_struct;
|
||||
extern unsigned int sysctl_net_ll_read __read_mostly;
|
||||
extern unsigned int sysctl_net_ll_poll __read_mostly;
|
||||
extern unsigned int sysctl_net_busy_read __read_mostly;
|
||||
extern unsigned int sysctl_net_busy_poll __read_mostly;
|
||||
|
||||
/* return values from ndo_ll_poll */
|
||||
#define LL_FLUSH_FAILED -1
|
||||
@ -39,7 +39,7 @@ extern unsigned int sysctl_net_ll_poll __read_mostly;
|
||||
|
||||
static inline bool net_busy_loop_on(void)
|
||||
{
|
||||
return sysctl_net_ll_poll;
|
||||
return sysctl_net_busy_poll;
|
||||
}
|
||||
|
||||
/* a wrapper to make debug_smp_processor_id() happy
|
||||
@ -72,7 +72,7 @@ static inline unsigned long sk_busy_loop_end_time(struct sock *sk)
|
||||
/* in poll/select we use the global sysctl_net_ll_poll value */
|
||||
static inline unsigned long busy_loop_end_time(void)
|
||||
{
|
||||
return busy_loop_us_clock() + ACCESS_ONCE(sysctl_net_ll_poll);
|
||||
return busy_loop_us_clock() + ACCESS_ONCE(sysctl_net_busy_poll);
|
||||
}
|
||||
|
||||
static inline bool sk_can_busy_loop(struct sock *sk)
|
||||
|
@ -76,6 +76,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* __ASM_GENERIC_SOCKET_H */
|
||||
|
@ -901,7 +901,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
|
||||
break;
|
||||
|
||||
#ifdef CONFIG_NET_LL_RX_POLL
|
||||
case SO_LL:
|
||||
case SO_BUSY_POLL:
|
||||
/* allow unprivileged users to decrease the value */
|
||||
if ((val > sk->sk_ll_usec) && !capable(CAP_NET_ADMIN))
|
||||
ret = -EPERM;
|
||||
@ -1171,7 +1171,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
|
||||
break;
|
||||
|
||||
#ifdef CONFIG_NET_LL_RX_POLL
|
||||
case SO_LL:
|
||||
case SO_BUSY_POLL:
|
||||
v.val = sk->sk_ll_usec;
|
||||
break;
|
||||
#endif
|
||||
@ -2294,7 +2294,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
|
||||
|
||||
#ifdef CONFIG_NET_LL_RX_POLL
|
||||
sk->sk_napi_id = 0;
|
||||
sk->sk_ll_usec = sysctl_net_ll_read;
|
||||
sk->sk_ll_usec = sysctl_net_busy_read;
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -300,15 +300,15 @@ static struct ctl_table net_core_table[] = {
|
||||
#endif /* CONFIG_NET_FLOW_LIMIT */
|
||||
#ifdef CONFIG_NET_LL_RX_POLL
|
||||
{
|
||||
.procname = "low_latency_poll",
|
||||
.data = &sysctl_net_ll_poll,
|
||||
.procname = "busy_poll",
|
||||
.data = &sysctl_net_busy_poll,
|
||||
.maxlen = sizeof(unsigned int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec
|
||||
},
|
||||
{
|
||||
.procname = "low_latency_read",
|
||||
.data = &sysctl_net_ll_read,
|
||||
.procname = "busy_read",
|
||||
.data = &sysctl_net_busy_read,
|
||||
.maxlen = sizeof(unsigned int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec
|
||||
|
@ -107,8 +107,8 @@
|
||||
#include <net/busy_poll.h>
|
||||
|
||||
#ifdef CONFIG_NET_LL_RX_POLL
|
||||
unsigned int sysctl_net_ll_read __read_mostly;
|
||||
unsigned int sysctl_net_ll_poll __read_mostly;
|
||||
unsigned int sysctl_net_busy_read __read_mostly;
|
||||
unsigned int sysctl_net_busy_poll __read_mostly;
|
||||
#endif
|
||||
|
||||
static int sock_no_open(struct inode *irrelevant, struct file *dontcare);
|
||||
|
Loading…
Reference in New Issue
Block a user