Messages in this thread | | | Date | Fri, 10 Oct 2003 14:56:39 -0400 (EDT) | From | Zwane Mwaikambo <> | Subject | Re: 8139_tx_interrupt - Tx time |
| |
On Fri, 10 Oct 2003, Adam Flizikowski wrote:
> Hi, > > I am trying to find out how long it takes to push packet off the NIC in > 8139_tx_interrupt(){} (kernel 2.4.20) > > but i don't know how to identify packet in this loop - i know that "entry" > stands for the packet but in the loop underneath: > /* code snippet for 8139_tx_interrupt(){}*/ > > 1726 while (tx_left > 0) { > 1727 int entry = dirty_tx % NUM_TX_DESC; > 1728 int txstatus; > > ... > > 1762 > 1763 dirty_tx++; > 1764 tx_left--; // <- is single packet sent just > here?????? > 1765 } > > what "tx_left" and "dirty_tx" variables stand for? Is single iteration > through the loop (lines 1726-1765) related to SINGLE packet transmission?
No, that simply checks tx status, the transmission is done elsewhere.
> I wanted to put some probes inside tx_interrupt but not sure where it should > start/stop measuring to show single packet transmission time.
tx_interrupt is normally triggered on transmission completion, you probably want to sample from;
rtl8139_start_xmit { ... RTL_W32_F (TxStatus0 + (entry * sizeof (u32)), tp->tx_flag | max(len, (unsigned int)ETH_ZLEN)); ... }
That is when the packet hits the hardware, you could keep per tx descriptor start/end timestamps with end being in tx_interrupt.
Hope that gets you somewhere.
- 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/
| |