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