Michal Hocko
da6bc57a8f
net: use kvmalloc with __GFP_REPEAT rather than open coded variant
...
fq_alloc_node, alloc_netdev_mqs and netif_alloc* open code kmalloc with
vmalloc fallback. Use the kvmalloc variant instead. Keep the
__GFP_REPEAT flag based on explanation from Eric:
"At the time, tests on the hardware I had in my labs showed that
vmalloc() could deliver pages spread all over the memory and that was
a small penalty (once memory is fragmented enough, not at boot time)"
The way how the code is constructed means, however, that we prefer to go
and hit the OOM killer before we fall back to the vmalloc for requests
<=32kB (with 4kB pages) in the current code. This is rather disruptive
for something that can be achived with the fallback. On the other hand
__GFP_REPEAT doesn't have any useful semantic for these requests. So
the effect of this patch is that requests which fit into 32kB will fall
back to vmalloc easier now.
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Michal Hocko <[email protected] >
Acked-by: Vlastimil Babka <[email protected] >
Cc: Eric Dumazet <[email protected] >
Cc: David Miller <[email protected] >
Cc: Shakeel Butt <[email protected] >
Signed-off-by: Andrew Morton <[email protected] >
Signed-off-by: Linus Torvalds <[email protected] >
2017-05-08 17:15:13 -07:00
..
act_api.c
net: sched: add helpers to handle extended actions
2017-05-02 15:33:54 -04:00
act_bpf.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_connmark.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_csum.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_gact.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_ife.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_ipt.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_meta_mark.c
act_meta_skbprio.c
act_meta_skbtcindex.c
act_mirred.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_nat.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_pedit.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_police.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_sample.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_simple.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_skbedit.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_skbmod.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_tunnel_key.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
act_vlan.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
cls_api.c
net_sched: move the empty tp check from ->destroy() to ->delete()
2017-04-21 13:58:15 -04:00
cls_basic.c
net_sched: move the empty tp check from ->destroy() to ->delete()
2017-04-21 13:58:15 -04:00
cls_bpf.c
net_sched: move the empty tp check from ->destroy() to ->delete()
2017-04-21 13:58:15 -04:00
cls_cgroup.c
net_sched: move the empty tp check from ->destroy() to ->delete()
2017-04-21 13:58:15 -04:00
cls_flow.c
net_sched: move the empty tp check from ->destroy() to ->delete()
2017-04-21 13:58:15 -04:00
cls_flower.c
flower: check unused bits in MPLS fields
2017-05-01 11:12:21 -04:00
cls_fw.c
net_sched: remove useless NULL to tp->root
2017-04-21 13:58:15 -04:00
cls_matchall.c
net/sched: remove redundant null check on head
2017-05-04 11:01:30 -04:00
cls_route.c
net_sched: remove useless NULL to tp->root
2017-04-21 13:58:15 -04:00
cls_rsvp.c
cls_rsvp.h
net_sched: remove useless NULL to tp->root
2017-04-21 13:58:15 -04:00
cls_rsvp6.c
cls_tcindex.c
net_sched: move the empty tp check from ->destroy() to ->delete()
2017-04-21 13:58:15 -04:00
cls_u32.c
net_sched: move the empty tp check from ->destroy() to ->delete()
2017-04-21 13:58:15 -04:00
em_canid.c
em_cmp.c
em_ipset.c
netfilter: x_tables: move hook state into xt_action_param structure
2016-11-03 10:56:21 +01:00
em_meta.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
Kconfig
Subject: net: allow configuring default qdisc
2017-04-17 13:23:06 -04:00
Makefile
net/sched: Introduce sample tc action
2017-01-24 13:44:28 -05:00
sch_api.c
net: rtnetlink: plumb extended ack to doit function
2017-04-17 15:35:38 -04:00
sch_atm.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_blackhole.c
sch_cbq.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_choke.c
treewide: use kv[mz]alloc* rather than opencoded variants
2017-05-08 17:15:13 -07:00
sch_codel.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_drr.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_dsmark.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_fifo.c
sch_fq.c
net: use kvmalloc with __GFP_REPEAT rather than open coded variant
2017-05-08 17:15:13 -07:00
sch_fq_codel.c
treewide: use kv[mz]alloc* rather than opencoded variants
2017-05-08 17:15:13 -07:00
sch_generic.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-04-15 21:16:30 -04:00
sch_gred.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_hfsc.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_hhf.c
treewide: use kv[mz]alloc* rather than opencoded variants
2017-05-08 17:15:13 -07:00
sch_htb.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_ingress.c
sched: move tcf_proto_destroy and tcf_destroy_chain helpers into cls_api
2017-02-10 11:38:08 -05:00
sch_mq.c
net: sched: make default fifo qdiscs appear in the dump
2017-03-12 22:53:02 -07:00
sch_mqprio.c
mqprio: Modify mqprio to pass user parameters via ndo_setup_tc.
2017-03-15 15:20:27 -07:00
sch_multiq.c
net: sched: make default fifo qdiscs appear in the dump
2017-03-12 22:53:02 -07:00
sch_netem.c
treewide: use kv[mz]alloc* rather than opencoded variants
2017-05-08 17:15:13 -07:00
sch_pie.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_plug.c
sch_prio.c
net: sched: make default fifo qdiscs appear in the dump
2017-03-12 22:53:02 -07:00
sch_qfq.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_red.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_sfb.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_sfq.c
treewide: use kv[mz]alloc* rather than opencoded variants
2017-05-08 17:15:13 -07:00
sch_tbf.c
netlink: pass extended ACK struct to parsing functions
2017-04-13 13:58:22 -04:00
sch_teql.c
net: make ndo_get_stats64 a void function
2017-01-08 17:51:44 -05:00