RE: [patch] Performance enhancement patches for SB1250 MAC
From: Yang, Steve <hidden>
Date: 2006-11-22 00:34:02
The patches have been tested on non-SMP and SMP configurations. Regards, Steve Yang -----Original Message----- From: Stephen Hemminger [mailto:shemminger@osdl.org] Sent: Tuesday, November 21, 2006 11:13 AM To: Yang, Steve Cc: Martin Michlmayr; netdev@vger.kernel.org Subject: Re: [patch] Performance enhancement patches for SB1250 MAC On Tue, 21 Nov 2006 08:45:58 -0800 "Yang, Steve" [off-list ref] wrote:
Martin, I've attached the two patches with this email. Original submission email text: "The attached are two network performance enhancement patches for SB1250 MAC. The NAPI patch applies first. Followed by the "skb cache"
patch.
They applied and builds cleanly on 2.6.18 kernel for the following kernel option combinations: SBMAC_NAPI no yes yes SKB_CACHE no no yes" Regards, Steve Yang -----Original Message----- From: Martin Michlmayr [mailto:tbm@cyrius.com] Sent: Tuesday, November 21, 2006 6:27 AM To: Stephen Hemminger Cc: Yang, Steve; netdev@vger.kernel.org Subject: Re: [patch] Performance enhancement patches for SB1250 MAC * Stephen Hemminger [off-list ref] [2006-11-20 15:35]:quoted
quoted
1. I've submitted two patches, one for NAPI and the other forSKB_Cache.quoted
quoted
They can go in individually. You've expressed objections toSKB_Cache.quoted
quoted
What about the one for NAPI?Yes, the NAPI one is great.Should Steve resend the patch so it can be added or is it queued up already? It would be nice to have this in 2.6.20. -- Martin Michlmayr tbm@cyrius.com
One comment about the driver in general (not NAPI related), is that almost all uses of "volatile" in a driver are incorrect. Especially these because the device memory (__iomem) should already be mapped non-cached. Volatile protects against compiler issues, not device consistency.
@@ -197,13 +206,16 @@ volatile void __iomem *sbdma_config0; /* DMA config register 0
*/ volatile void __iomem *sbdma_config1; /* DMA config register 1 */ volatile void __iomem *sbdma_dscrbase; /* Descriptor base address */ - volatile void __iomem *sbdma_dscrcnt; /* Descriptor count register */ + volatile void __iomem *sbdma_dscrcnt; /* Descriptor count register */ volatile void __iomem *sbdma_curdscr; /* current descriptor address */ + volatile void __iomem *sbdma_oodpktlost;/* pkt drop (rx only) */ + Also, how is this NAPI related (probably should be a different patch. But I no nothing about MIPS SMP. Index: linux-2.6.14-cgl/arch/mips/sibyte/bcm1480/irq.c ===================================================================
--- linux-2.6.14-cgl.orig/arch/mips/sibyte/bcm1480/irq.c2006-09-20 14:58:41.000000000 -0700
+++ linux-2.6.14-cgl/arch/mips/sibyte/bcm1480/irq.c 2006-09-2015:58:33.000000000 -0700
@@ -144,11 +144,11 @@ unsigned long flags; unsigned int irq_dirty; - i = first_cpu(mask); - if (next_cpu(i, mask) <= NR_CPUS) { + if (cpus_weight(mask) != 1) { printk("attempted to set irq affinity for irq %d to
multiple CPUs\n", irq); return; } + i = first_cpu(mask); /* Convert logical CPU to physical CPU */ cpu = cpu_logical_map(i); -- Stephen Hemminger [off-list ref]