Thread (19 messages) 19 messages, 4 authors, 2011-06-14

Re: [net-next 13/13] ixgbe: use per NUMA node lock for FCoE DDP

flat view

From: Eric Dumazet <hidden>
Date: 2011-06-11 05:42:15

Le samedi 11 juin 2011 à 07:18 +0200, Eric Dumazet a écrit :
quoted
 /**
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.h b/drivers/net/ixgbe/ixgbe_fcoe.h
index d876e7a..8618892 100644
--- a/drivers/net/ixgbe/ixgbe_fcoe.h
+++ b/drivers/net/ixgbe/ixgbe_fcoe.h
@@ -69,6 +69,7 @@ struct ixgbe_fcoe {
 	struct pci_pool **pool;
 	atomic_t refcnt;
 	spinlock_t lock;
+	struct spinlock **node_lock;
Wont this read_mostly pointer sits in often modified cache line ?
quoted
 	struct ixgbe_fcoe_ddp ddp[IXGBE_FCOE_DDP_MAX];
 	unsigned char *extra_ddp_buffer;
 	dma_addr_t extra_ddp_buffer_dma;
This patch seems overkill to me, have you tried the more simple way I
did in commit 79640a4ca6955e3ebdb7038508fa7a0cd7fa5527
(net: add additional lock to qdisc to increase throughput )

(remember you must place ->busylock in a separate cache line, to not
slow down the two cpus that have access to ->lock)

struct ixgbe_fcoe could probably be more carefuly reordered to lower
false sharing

I kindly ask you guys provide actual perf numbers between

1) before any patch
2) After your multilevel per numanode locks
3) A more simple way (my suggestion of adding a single 'busylock')

Thanks

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help