[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20090518.151522.70235359.davem@davemloft.net>
Date: Mon, 18 May 2009 15:15:22 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: dada1@...mosbay.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH 0/2] net: tx scalability works :
tx_packets/tx_bytes/tx_dropped
From: Eric Dumazet <dada1@...mosbay.com>
Date: Mon, 18 May 2009 12:33:17 +0200
> offsetof(struct net_device, features)=0x44
> offsetof(struct net_device, stats.tx_packets)=0x54
> offsetof(struct net_device, stats.tx_bytes)=0x5c
> offsetof(struct net_device, stats.tx_dropped)=0x6c
>
> This means drivers that touch stats.tx_packets/stats.tx_bytes in their
> tx path can slow down SMP operations, since they dirty a cache line
> that should stay shared (dev->features is needed in rx and tx paths)
>
> We could move away stats field in net_device but it wont help that much.
> (Two cache lines dirtied in tx path, we can do one only)
>
> Better solution is to add tx_packets/tx_bytes/tx_dropped in struct netdev_queue
> because this structure is already touched in tx path and counters
> updates will then be free.
>
> First patch adds the infrastructure, and second one uses this
> infrastructure for VLAN devices, for which I spoted the performance
> problem on Gigabit links.
>
> rx path has same problem of course, but less prevalent as less
> cpus are involved in rx path if IRQ affinities not too dumb.
Looks great, both patches applied, thanks!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists