[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4ADE2735.9000807@candelatech.com>
Date: Tue, 20 Oct 2009 14:10:13 -0700
From: Ben Greear <greearb@...delatech.com>
To: Eric Dumazet <eric.dumazet@...il.com>
CC: NetDev <netdev@...r.kernel.org>, robert@...julf.net,
"David S. Miller" <davem@...emloft.net>
Subject: Re: pktgen and spin_lock_bh in xmit path
On 10/20/2009 11:54 AM, Eric Dumazet wrote:
> - queue_map = skb_get_queue_mapping(pkt_dev->skb);
> + queue_map = pkt_dev->cur_queue_map;
> + /*
> + * tells skb_tx_hash() to use this tx queue.
> + * We should reset skb->mapping before each xmit() because
> + * xmit() might change it.
> + */
> + skb_record_rx_queue(pkt_dev->skb, queue_map);
> txq = netdev_get_tx_queue(odev, queue_map);
I think that must be wrong. The record_rx_queue sets it to queue_map + 1,
but the hard-start-xmit method (in ixgbe/ixgbe_main.c, at least), takes the
skb->queue_map and uses it as an index with no subtraction.
This causes watchdog timeouts because we are calling txq_trans_update in pktgen on
queue 0, for instance, but sending pkts on queue 1. If queue 1 is ever
busy when the WD fires, link is reset.
Thanks,
Ben
--
Ben Greear <greearb@...delatech.com>
Candela Technologies Inc http://www.candelatech.com
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists