Files
linux-legacy/include/linux
Denis Vlasenko 56079431b6 [NET]: Deinline some larger functions from netdevice.h
On a allyesconfig'ured kernel:

Size  Uses Wasted Name and definition
===== ==== ====== ================================================
   95  162  12075 netif_wake_queue      include/linux/netdevice.h
  129   86   9265 dev_kfree_skb_any     include/linux/netdevice.h
  127   56   5885 netif_device_attach   include/linux/netdevice.h
   73   86   4505 dev_kfree_skb_irq     include/linux/netdevice.h
   46   60   1534 netif_device_detach   include/linux/netdevice.h
  119   16   1485 __netif_rx_schedule   include/linux/netdevice.h
  143    5    492 netif_rx_schedule     include/linux/netdevice.h
   81    7    366 netif_schedule        include/linux/netdevice.h

netif_wake_queue is big because __netif_schedule is a big inline:

static inline void __netif_schedule(struct net_device *dev)
{
        if (!test_and_set_bit(__LINK_STATE_SCHED, &dev->state)) {
                unsigned long flags;
                struct softnet_data *sd;

                local_irq_save(flags);
                sd = &__get_cpu_var(softnet_data);
                dev->next_sched = sd->output_queue;
                sd->output_queue = dev;
                raise_softirq_irqoff(NET_TX_SOFTIRQ);
                local_irq_restore(flags);
        }
}

static inline void netif_wake_queue(struct net_device *dev)
{
#ifdef CONFIG_NETPOLL_TRAP
        if (netpoll_trap())
                return;
#endif
        if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state))
                __netif_schedule(dev);
}

By de-inlining __netif_schedule we are saving a lot of text
at each callsite of netif_wake_queue and netif_schedule.
__netif_rx_schedule is also big, and it makes more sense to keep
both of them out of line.

Patch also deinlines dev_kfree_skb_any. We can deinline dev_kfree_skb_irq
instead... oh well.

netif_device_attach/detach are not hot paths, we can deinline them too.

Signed-off-by: Denis Vlasenko <vda@ilport.com.ua>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-03-29 15:57:29 -08:00
..
2006-01-08 20:14:02 -08:00
2006-03-21 08:52:18 -08:00
2006-02-22 09:32:46 +00:00
2006-01-13 16:29:56 -08:00
2006-03-20 14:08:55 -05:00
2006-01-13 09:12:21 -08:00
2006-03-24 07:33:20 -08:00
2006-03-28 09:16:05 -08:00
2006-03-23 07:38:09 -08:00
2006-03-27 08:44:59 -08:00
2006-01-08 20:14:02 -08:00
2006-03-27 08:44:59 -08:00
2006-01-08 20:13:49 -08:00
2006-03-24 07:33:25 -08:00
2006-03-28 09:16:08 -08:00
2006-01-18 19:20:29 -08:00
2006-01-14 18:27:09 -08:00
2006-03-26 08:56:56 -08:00
2006-03-26 08:57:03 -08:00
2006-03-27 08:44:51 -08:00
2006-03-20 17:09:11 -08:00
2006-03-20 22:41:23 -08:00
2006-01-06 13:24:54 -08:00
2006-03-28 09:16:05 -08:00
2006-02-01 08:53:13 -08:00
2006-02-08 01:03:52 -05:00
2006-01-06 13:24:29 -08:00
2006-03-26 08:56:56 -08:00
2006-03-20 22:21:10 -08:00
2006-02-10 08:13:12 -08:00
2006-03-20 13:42:59 -08:00
2006-03-23 07:38:12 -08:00
2006-03-23 07:38:12 -08:00
2006-03-27 08:44:52 -08:00
2006-03-22 07:54:06 -08:00
2006-03-22 07:53:57 -08:00
2006-03-22 07:54:02 -08:00
2006-03-27 08:44:48 -08:00
2006-01-18 19:20:29 -08:00
2006-03-23 07:38:13 -08:00
2006-03-23 07:38:14 -08:00
2006-03-23 07:38:14 -08:00
2006-03-20 13:44:40 -05:00
2006-03-20 13:44:27 -05:00
2006-03-29 13:24:50 +11:00
2006-03-08 14:14:01 -08:00
2006-01-15 02:12:54 +01:00
2006-03-27 08:44:48 -08:00
2006-03-28 18:36:44 -08:00
2006-03-25 08:22:51 -08:00
2006-03-25 08:22:53 -08:00
2006-03-27 08:44:51 -08:00
2006-01-10 08:01:42 -08:00
2006-01-08 20:14:02 -08:00
2006-03-23 07:38:12 -08:00
2006-03-26 08:57:09 -08:00
2006-01-14 18:27:13 -08:00
2006-03-20 22:41:23 -08:00
2006-03-28 09:16:05 -08:00
2006-03-24 07:33:31 -08:00
2006-03-23 07:38:07 -08:00
2006-03-26 08:57:03 -08:00
2006-03-26 08:57:03 -08:00
2006-01-12 14:06:38 -08:00
2006-01-10 08:01:59 -08:00
2006-03-23 07:38:11 -08:00
2006-03-26 08:57:00 -08:00
2006-03-23 07:38:14 -08:00
2006-03-28 09:16:05 -08:00
2006-03-23 07:12:57 -05:00
2006-01-10 08:01:57 -08:00