All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <49CA39EA.6020208@cosmosbay.com>

diff --git a/a/1.txt b/N1/1.txt
index c6c9b23..dbe7e90 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,4 +1,4 @@
-Joakim Tjernlund a =E9crit :
+Joakim Tjernlund a écrit :
 >>From 1c2f23b1f37f4818c0fd0217b93eb38ab6564840 Mon Sep 17 00:00:00 2001
 > From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
 > Date: Tue, 24 Mar 2009 10:19:27 +0100
@@ -6,48 +6,45 @@ Joakim Tjernlund a =E9crit :
 >  Also increase NAPI weight somewhat.
 >  This will make the system alot more responsive while
 >  ping flooding the ucc_geth ethernet interaface.
->=20
->=20
+> 
+> 
 > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
 > ---
 >  drivers/net/ucc_geth.c |   30 +++++++++++-------------------
 >  drivers/net/ucc_geth.h |    2 +-
 >  2 files changed, 12 insertions(+), 20 deletions(-)
->=20
+> 
 > diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
 > index 097aed8..7d5d110 100644
 > --- a/drivers/net/ucc_geth.c
 > +++ b/drivers/net/ucc_geth.c
-> @@ -3214,7 +3214,7 @@ static int ucc_geth_tx(struct net_device *dev, u8=
- txQ)
+> @@ -3214,7 +3214,7 @@ static int ucc_geth_tx(struct net_device *dev, u8 txQ)
 >  		dev->stats.tx_packets++;
-> =20
+>  
 >  		/* Free the sk buffer associated with this TxBD */
 > -		dev_kfree_skb_irq(ugeth->
 > +		dev_kfree_skb(ugeth->
 >  				  tx_skbuff[txQ][ugeth->skb_dirtytx[txQ]]);
->  		ugeth->tx_skbuff[txQ][ugeth->skb_dirtytx[txQ]] =3D NULL;
->  		ugeth->skb_dirtytx[txQ] =3D
-> @@ -3248,9 +3248,16 @@ static int ucc_geth_poll(struct napi_struct *nap=
-i, int budget)
->  	for (i =3D 0; i < ug_info->numQueuesRx; i++)
->  		howmany +=3D ucc_geth_rx(ugeth, i, budget - howmany);
-> =20
+>  		ugeth->tx_skbuff[txQ][ugeth->skb_dirtytx[txQ]] = NULL;
+>  		ugeth->skb_dirtytx[txQ] =
+> @@ -3248,9 +3248,16 @@ static int ucc_geth_poll(struct napi_struct *napi, int budget)
+>  	for (i = 0; i < ug_info->numQueuesRx; i++)
+>  		howmany += ucc_geth_rx(ugeth, i, budget - howmany);
+>  
 
 Cant you test (ucce & UCCE_TX_EVENTS) or something here to avoid
 taking lock and checking queues if not necessary ?
 
 > +	/* Tx event processing */
 > +	spin_lock(&ugeth->lock);
-> +	for (i =3D 0; i < ug_info->numQueuesTx; i++) {
+> +	for (i = 0; i < ug_info->numQueuesTx; i++) {
 > +		ucc_geth_tx(ugeth->dev, i);
 > +	}
 > +	spin_unlock(&ugeth->lock);
 > +
 
 Why tx completions dont change "howmany" ?
-It seems strange you changed UCC_GETH_DEV_WEIGHT if not taking into accou=
-nt tx event above...
+It seems strange you changed UCC_GETH_DEV_WEIGHT if not taking into account tx event above...
 
 
 >  	if (howmany < budget) {
@@ -55,42 +52,40 @@ nt tx event above...
 > -		setbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS);
 > +		setbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS | UCCE_TX_EVENTS);
 >  	}
-> =20
+>  
 >  	return howmany;
-> @@ -3264,8 +3271,6 @@ static irqreturn_t ucc_geth_irq_handler(int irq, =
-void *info)
+> @@ -3264,8 +3271,6 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info)
 >  	struct ucc_geth_info *ug_info;
 >  	register u32 ucce;
 >  	register u32 uccm;
 > -	register u32 tx_mask;
 > -	u8 i;
-> =20
+>  
 >  	ugeth_vdbg("%s: IN", __func__);
-> =20
-> @@ -3279,27 +3284,14 @@ static irqreturn_t ucc_geth_irq_handler(int irq=
-, void *info)
+>  
+> @@ -3279,27 +3284,14 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info)
 >  	out_be32(uccf->p_ucce, ucce);
-> =20
+>  
 >  	/* check for receive events that require processing */
 > -	if (ucce & UCCE_RX_EVENTS) {
 > +	if (ucce & (UCCE_RX_EVENTS | UCCE_TX_EVENTS)) {
 >  		if (netif_rx_schedule_prep(&ugeth->napi)) {
-> -			uccm &=3D ~UCCE_RX_EVENTS;
-> +			uccm &=3D ~(UCCE_RX_EVENTS | UCCE_TX_EVENTS);
+> -			uccm &= ~UCCE_RX_EVENTS;
+> +			uccm &= ~(UCCE_RX_EVENTS | UCCE_TX_EVENTS);
 >  			out_be32(uccf->p_uccm, uccm);
 >  			__netif_rx_schedule(&ugeth->napi);
 >  		}
 >  	}
-> =20
+>  
 > -	/* Tx event processing */
 > -	if (ucce & UCCE_TX_EVENTS) {
 > -		spin_lock(&ugeth->lock);
-> -		tx_mask =3D UCC_GETH_UCCE_TXB0;
-> -		for (i =3D 0; i < ug_info->numQueuesTx; i++) {
+> -		tx_mask = UCC_GETH_UCCE_TXB0;
+> -		for (i = 0; i < ug_info->numQueuesTx; i++) {
 > -			if (ucce & tx_mask)
 > -				ucc_geth_tx(dev, i);
-> -			ucce &=3D ~tx_mask;
-> -			tx_mask <<=3D 1;
+> -			ucce &= ~tx_mask;
+> -			tx_mask <<= 1;
 > -		}
 > -		spin_unlock(&ugeth->lock);
 > -	}
@@ -107,8 +102,7 @@ void *info)
 >  #define TX_BD_RING_LEN                          0x10
 >  #define RX_BD_RING_LEN                          0x10
 > -#define UCC_GETH_DEV_WEIGHT                     TX_BD_RING_LEN
-> +#define UCC_GETH_DEV_WEIGHT                     (RX_BD_RING_LEN+TX_BD_=
-RING_LEN/2)
-> =20
+> +#define UCC_GETH_DEV_WEIGHT                     (RX_BD_RING_LEN+TX_BD_RING_LEN/2)
+>  
 >  #define TX_RING_MOD_MASK(size)                  (size-1)
 >  #define RX_RING_MOD_MASK(size)                  (size-1)
diff --git a/a/content_digest b/N1/content_digest
index d9d1282..5014957 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -4,11 +4,12 @@
  "Date\0Wed, 25 Mar 2009 15:04:26 +0100\0"
  "To\0joakim.tjernlund@transmode.se\0"
  "Cc\0Netdev <netdev@vger.kernel.org>"
+  avorontsov@ru.mvista.com
   leoli@freescale.com
  " 'linuxppc-dev Development' <linuxppc-dev@ozlabs.org>\0"
  "\00:1\0"
  "b\0"
- "Joakim Tjernlund a =E9crit :\n"
+ "Joakim Tjernlund a \303\251crit :\n"
  ">>From 1c2f23b1f37f4818c0fd0217b93eb38ab6564840 Mon Sep 17 00:00:00 2001\n"
  "> From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>\n"
  "> Date: Tue, 24 Mar 2009 10:19:27 +0100\n"
@@ -16,48 +17,45 @@
  ">  Also increase NAPI weight somewhat.\n"
  ">  This will make the system alot more responsive while\n"
  ">  ping flooding the ucc_geth ethernet interaface.\n"
- ">=20\n"
- ">=20\n"
+ "> \n"
+ "> \n"
  "> Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>\n"
  "> ---\n"
  ">  drivers/net/ucc_geth.c |   30 +++++++++++-------------------\n"
  ">  drivers/net/ucc_geth.h |    2 +-\n"
  ">  2 files changed, 12 insertions(+), 20 deletions(-)\n"
- ">=20\n"
+ "> \n"
  "> diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c\n"
  "> index 097aed8..7d5d110 100644\n"
  "> --- a/drivers/net/ucc_geth.c\n"
  "> +++ b/drivers/net/ucc_geth.c\n"
- "> @@ -3214,7 +3214,7 @@ static int ucc_geth_tx(struct net_device *dev, u8=\n"
- " txQ)\n"
+ "> @@ -3214,7 +3214,7 @@ static int ucc_geth_tx(struct net_device *dev, u8 txQ)\n"
  ">  \t\tdev->stats.tx_packets++;\n"
- "> =20\n"
+ ">  \n"
  ">  \t\t/* Free the sk buffer associated with this TxBD */\n"
  "> -\t\tdev_kfree_skb_irq(ugeth->\n"
  "> +\t\tdev_kfree_skb(ugeth->\n"
  ">  \t\t\t\t  tx_skbuff[txQ][ugeth->skb_dirtytx[txQ]]);\n"
- ">  \t\tugeth->tx_skbuff[txQ][ugeth->skb_dirtytx[txQ]] =3D NULL;\n"
- ">  \t\tugeth->skb_dirtytx[txQ] =3D\n"
- "> @@ -3248,9 +3248,16 @@ static int ucc_geth_poll(struct napi_struct *nap=\n"
- "i, int budget)\n"
- ">  \tfor (i =3D 0; i < ug_info->numQueuesRx; i++)\n"
- ">  \t\thowmany +=3D ucc_geth_rx(ugeth, i, budget - howmany);\n"
- "> =20\n"
+ ">  \t\tugeth->tx_skbuff[txQ][ugeth->skb_dirtytx[txQ]] = NULL;\n"
+ ">  \t\tugeth->skb_dirtytx[txQ] =\n"
+ "> @@ -3248,9 +3248,16 @@ static int ucc_geth_poll(struct napi_struct *napi, int budget)\n"
+ ">  \tfor (i = 0; i < ug_info->numQueuesRx; i++)\n"
+ ">  \t\thowmany += ucc_geth_rx(ugeth, i, budget - howmany);\n"
+ ">  \n"
  "\n"
  "Cant you test (ucce & UCCE_TX_EVENTS) or something here to avoid\n"
  "taking lock and checking queues if not necessary ?\n"
  "\n"
  "> +\t/* Tx event processing */\n"
  "> +\tspin_lock(&ugeth->lock);\n"
- "> +\tfor (i =3D 0; i < ug_info->numQueuesTx; i++) {\n"
+ "> +\tfor (i = 0; i < ug_info->numQueuesTx; i++) {\n"
  "> +\t\tucc_geth_tx(ugeth->dev, i);\n"
  "> +\t}\n"
  "> +\tspin_unlock(&ugeth->lock);\n"
  "> +\n"
  "\n"
  "Why tx completions dont change \"howmany\" ?\n"
- "It seems strange you changed UCC_GETH_DEV_WEIGHT if not taking into accou=\n"
- "nt tx event above...\n"
+ "It seems strange you changed UCC_GETH_DEV_WEIGHT if not taking into account tx event above...\n"
  "\n"
  "\n"
  ">  \tif (howmany < budget) {\n"
@@ -65,42 +63,40 @@
  "> -\t\tsetbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS);\n"
  "> +\t\tsetbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS | UCCE_TX_EVENTS);\n"
  ">  \t}\n"
- "> =20\n"
+ ">  \n"
  ">  \treturn howmany;\n"
- "> @@ -3264,8 +3271,6 @@ static irqreturn_t ucc_geth_irq_handler(int irq, =\n"
- "void *info)\n"
+ "> @@ -3264,8 +3271,6 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info)\n"
  ">  \tstruct ucc_geth_info *ug_info;\n"
  ">  \tregister u32 ucce;\n"
  ">  \tregister u32 uccm;\n"
  "> -\tregister u32 tx_mask;\n"
  "> -\tu8 i;\n"
- "> =20\n"
+ ">  \n"
  ">  \tugeth_vdbg(\"%s: IN\", __func__);\n"
- "> =20\n"
- "> @@ -3279,27 +3284,14 @@ static irqreturn_t ucc_geth_irq_handler(int irq=\n"
- ", void *info)\n"
+ ">  \n"
+ "> @@ -3279,27 +3284,14 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info)\n"
  ">  \tout_be32(uccf->p_ucce, ucce);\n"
- "> =20\n"
+ ">  \n"
  ">  \t/* check for receive events that require processing */\n"
  "> -\tif (ucce & UCCE_RX_EVENTS) {\n"
  "> +\tif (ucce & (UCCE_RX_EVENTS | UCCE_TX_EVENTS)) {\n"
  ">  \t\tif (netif_rx_schedule_prep(&ugeth->napi)) {\n"
- "> -\t\t\tuccm &=3D ~UCCE_RX_EVENTS;\n"
- "> +\t\t\tuccm &=3D ~(UCCE_RX_EVENTS | UCCE_TX_EVENTS);\n"
+ "> -\t\t\tuccm &= ~UCCE_RX_EVENTS;\n"
+ "> +\t\t\tuccm &= ~(UCCE_RX_EVENTS | UCCE_TX_EVENTS);\n"
  ">  \t\t\tout_be32(uccf->p_uccm, uccm);\n"
  ">  \t\t\t__netif_rx_schedule(&ugeth->napi);\n"
  ">  \t\t}\n"
  ">  \t}\n"
- "> =20\n"
+ ">  \n"
  "> -\t/* Tx event processing */\n"
  "> -\tif (ucce & UCCE_TX_EVENTS) {\n"
  "> -\t\tspin_lock(&ugeth->lock);\n"
- "> -\t\ttx_mask =3D UCC_GETH_UCCE_TXB0;\n"
- "> -\t\tfor (i =3D 0; i < ug_info->numQueuesTx; i++) {\n"
+ "> -\t\ttx_mask = UCC_GETH_UCCE_TXB0;\n"
+ "> -\t\tfor (i = 0; i < ug_info->numQueuesTx; i++) {\n"
  "> -\t\t\tif (ucce & tx_mask)\n"
  "> -\t\t\t\tucc_geth_tx(dev, i);\n"
- "> -\t\t\tucce &=3D ~tx_mask;\n"
- "> -\t\t\ttx_mask <<=3D 1;\n"
+ "> -\t\t\tucce &= ~tx_mask;\n"
+ "> -\t\t\ttx_mask <<= 1;\n"
  "> -\t\t}\n"
  "> -\t\tspin_unlock(&ugeth->lock);\n"
  "> -\t}\n"
@@ -117,10 +113,9 @@
  ">  #define TX_BD_RING_LEN                          0x10\n"
  ">  #define RX_BD_RING_LEN                          0x10\n"
  "> -#define UCC_GETH_DEV_WEIGHT                     TX_BD_RING_LEN\n"
- "> +#define UCC_GETH_DEV_WEIGHT                     (RX_BD_RING_LEN+TX_BD_=\n"
- "RING_LEN/2)\n"
- "> =20\n"
+ "> +#define UCC_GETH_DEV_WEIGHT                     (RX_BD_RING_LEN+TX_BD_RING_LEN/2)\n"
+ ">  \n"
  ">  #define TX_RING_MOD_MASK(size)                  (size-1)\n"
  >  #define RX_RING_MOD_MASK(size)                  (size-1)
 
-c7290893d7987c70be4204789d6ba39f670c82f4644a7b20d2339739541e2439
+1c61805a291772a45ae2c4c882b18734fff94c0af514d9675ff34c71224344d8

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.