mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 01:21:58 +00:00
qdisc: allow setting default queuing discipline
By default, the pfifo_fast queue discipline has been used by default for all devices. But we have better choices now. This patch allow setting the default queueing discipline with sysctl. This allows easy use of better queueing disciplines on all devices without having to use tc qdisc scripts. It is intended to allow an easy path for distributions to make fq_codel or sfq the default qdisc. This patch also makes pfifo_fast more of a first class qdisc, since it is now possible to manually override the default and explicitly use pfifo_fast. The behavior for systems who do not use the sysctl is unchanged, they still get pfifo_fast Also removes leftover random # in sysctl net core. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7d7628f371
commit
6da7c8fcbc
8 changed files with 112 additions and 8 deletions
|
@ -20,6 +20,7 @@
|
|||
#include <net/sock.h>
|
||||
#include <net/net_ratelimit.h>
|
||||
#include <net/busy_poll.h>
|
||||
#include <net/pkt_sched.h>
|
||||
|
||||
static int zero = 0;
|
||||
static int one = 1;
|
||||
|
@ -193,6 +194,26 @@ static int flow_limit_table_len_sysctl(struct ctl_table *table, int write,
|
|||
}
|
||||
#endif /* CONFIG_NET_FLOW_LIMIT */
|
||||
|
||||
#ifdef CONFIG_NET_SCHED
|
||||
static int set_default_qdisc(struct ctl_table *table, int write,
|
||||
void __user *buffer, size_t *lenp, loff_t *ppos)
|
||||
{
|
||||
char id[IFNAMSIZ];
|
||||
struct ctl_table tbl = {
|
||||
.data = id,
|
||||
.maxlen = IFNAMSIZ,
|
||||
};
|
||||
int ret;
|
||||
|
||||
qdisc_get_default(id, IFNAMSIZ);
|
||||
|
||||
ret = proc_dostring(&tbl, write, buffer, lenp, ppos);
|
||||
if (write && ret == 0)
|
||||
ret = qdisc_set_default(id);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct ctl_table net_core_table[] = {
|
||||
#ifdef CONFIG_NET
|
||||
{
|
||||
|
@ -315,7 +336,14 @@ static struct ctl_table net_core_table[] = {
|
|||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec
|
||||
},
|
||||
#
|
||||
#endif
|
||||
#ifdef CONFIG_NET_SCHED
|
||||
{
|
||||
.procname = "default_qdisc",
|
||||
.mode = 0644,
|
||||
.maxlen = IFNAMSIZ,
|
||||
.proc_handler = set_default_qdisc
|
||||
},
|
||||
#endif
|
||||
#endif /* CONFIG_NET */
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue