Re: [RFC PATCH v2] net: sched: convert qdisc linked list to hashtable
From: Thomas Graf <tgraf@suug.ch>
Date: 2016-07-08 11:07:26
Also in:
lkml
From: Thomas Graf <tgraf@suug.ch>
Date: 2016-07-08 11:07:26
Also in:
lkml
On 07/07/16 at 10:36pm, Jiri Kosina wrote:
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index f45929c..630838e 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h@@ -52,6 +52,7 @@ #include <uapi/linux/netdevice.h> #include <uapi/linux/if_bonding.h> #include <uapi/linux/pkt_cls.h> +#include <linux/hashtable.h> struct netpoll_info; struct device;@@ -1778,6 +1779,7 @@ struct net_device { unsigned int num_tx_queues; unsigned int real_num_tx_queues; struct Qdisc *qdisc; + DECLARE_HASHTABLE (qdisc_hash, 16);
This blows up net_device to an insane size: 64K * sizeof(struct hlist_head). Can we allocate this on demand for net_devices where it is actually needed? The majority of virtual devices won't need this. Doesn't have to be rhashtable, can still be fixed size but at least allocate it.