* [PATCH net-2.6.25] net: Improve cache line coherency of ingress qdisc
@ 2008-01-17 11:04 Neil Turton
2008-02-13 7:14 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Neil Turton @ 2008-01-17 11:04 UTC (permalink / raw)
To: netdev; +Cc: linux-net-drivers
Move the ingress qdisc members of struct net_device from the transmit
cache line to the receive cache line to avoid cache line ping-pong.
These members are only used on the receive path.
Signed-off-by: Neil Turton <nturton@solarflare.com>
---
--- net-2.6.25.git-orig/include/linux/netdevice.h 2008-01-15 17:43:08.000000000 +0000
+++ net-2.6.25.git-ndt1/include/linux/netdevice.h 2008-01-16 09:46:19.000000000 +0000
@@ -597,37 +597,37 @@ struct net_device
/*
* Cache line mostly used on receive path (including eth_type_trans())
*/
unsigned long last_rx; /* Time of last Rx */
/* Interface address info used in eth_type_trans() */
unsigned char dev_addr[MAX_ADDR_LEN]; /* hw address, (before bcast
because most packets are unicast) */
unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add */
+ /* ingress path synchronizer */
+ spinlock_t ingress_lock;
+ struct Qdisc *qdisc_ingress;
+
/*
* Cache line mostly used on queue transmit path (qdisc)
*/
/* device queue lock */
spinlock_t queue_lock ____cacheline_aligned_in_smp;
struct Qdisc *qdisc;
struct Qdisc *qdisc_sleeping;
struct list_head qdisc_list;
unsigned long tx_queue_len; /* Max frames per queue allowed */
/* Partially transmitted GSO packet. */
struct sk_buff *gso_skb;
- /* ingress path synchronizer */
- spinlock_t ingress_lock;
- struct Qdisc *qdisc_ingress;
-
/*
* One part is mostly used on xmit path (device)
*/
/* hard_start_xmit synchronizer */
spinlock_t _xmit_lock ____cacheline_aligned_in_smp;
/* cpu id of processor entered to hard_start_xmit or -1,
if nobody entered there.
*/
int xmit_lock_owner;
void *priv; /* pointer to private data */
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH net-2.6.25] net: Improve cache line coherency of ingress qdisc
2008-01-17 11:04 [PATCH net-2.6.25] net: Improve cache line coherency of ingress qdisc Neil Turton
@ 2008-02-13 7:14 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2008-02-13 7:14 UTC (permalink / raw)
To: nturton; +Cc: netdev, linux-net-drivers
From: Neil Turton <nturton@solarflare.com>
Date: Thu, 17 Jan 2008 11:04:44 +0000
> Move the ingress qdisc members of struct net_device from the transmit
> cache line to the receive cache line to avoid cache line ping-pong.
> These members are only used on the receive path.
>
> Signed-off-by: Neil Turton <nturton@solarflare.com>
Looks reasonable, applied, thanks!
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-02-13 7:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-17 11:04 [PATCH net-2.6.25] net: Improve cache line coherency of ingress qdisc Neil Turton
2008-02-13 7:14 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).