pktgen will definately stress the nics. Try sending to yourself
as well so you can test the pkt receive code..it's normally the weakest.
Ben
> --
> vda
>
> diff -u --recursive linux-2.5.40org/drivers/net/ewrk3.c linux-2.5.40/drivers/net/ewrk3.c
> --- linux-2.5.40org/drivers/net/ewrk3.c Tue Oct 1 05:06:58 2002
> +++ linux-2.5.40/drivers/net/ewrk3.c Thu Oct 3 12:09:46 2002
> @@ -930,6 +930,7 @@
> spin_unlock(&lp->hw_lock);
> }
>
> +/* Called with lp->hw_lock held */
> static int ewrk3_rx(struct net_device *dev)
> {
> struct ewrk3_private *lp = (struct ewrk3_private *) dev->priv;
> @@ -1055,8 +1056,9 @@
> }
>
> /*
> - ** Buffer sent - check for TX buffer errors.
> - */
> +** Buffer sent - check for TX buffer errors.
> +** Called with lp->hw_lock held
> +*/
> static int ewrk3_tx(struct net_device *dev)
> {
> struct ewrk3_private *lp = (struct ewrk3_private *) dev->priv;
> @@ -1631,6 +1633,7 @@
> u_long iobase = dev->base_addr;
> int i, j, status = 0;
> u_char csr;
> + unsigned long flags;
> union ewrk3_addr {
> u_char addr[HASH_TABLE_LEN * ETH_ALEN];
> u_short val[(HASH_TABLE_LEN * ETH_ALEN) >> 1];
> @@ -1745,19 +1748,26 @@
> }
>
> break;
> - case EWRK3_GET_STATS: /* Get the driver statistics */
> - cli();
> - ioc->len = sizeof(lp->pktStats);
> - if (copy_to_user(ioc->data, &lp->pktStats, ioc->len))
> - status = -EFAULT;
> - sti();
> + case EWRK3_GET_STATS: { /* Get the driver statistics */
> + typeof(lp->pktStats) *tmp_stats =
> + kmalloc(sizeof(lp->pktStats), GFP_KERNEL);
> + if (!tmp_stats) return -ENOMEM;
> +
> + spin_lock_irqsave(&lp->hw_lock, flags);
> + memcpy(tmp_stats, &lp->pktStats, sizeof(lp->pktStats));
> + spin_unlock_irqrestore(&lp->hw_lock, flags);
>
> + ioc->len = sizeof(lp->pktStats);
> + if (copy_to_user(ioc->data, tmp_stats, sizeof(lp->pktStats)))
> + status = -EFAULT;
> + kfree(tmp_stats);
> break;
> + }
> case EWRK3_CLR_STATS: /* Zero out the driver statistics */
> if (capable(CAP_NET_ADMIN)) {
> - cli();
> + spin_lock_irqsave(&lp->hw_lock, flags);
> memset(&lp->pktStats, 0, sizeof(lp->pktStats));
> - sti();
> + spin_unlock_irqrestore(&lp->hw_lock,flags);
> } else {
> status = -EPERM;
> }
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
-- Ben Greear <greearb@candelatech.com> <Ben_Greear AT excite.com> President of Candela Technologies Inc http://www.candelatech.com ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/