0.99L and timeouts
Bogdan Costescu
Bogdan.Costescu@IWR.Uni-Heidelberg.De
Mon Apr 10 07:59:13 2000
On Mon, 10 Apr 2000, Andrew Morton wrote:
> The 3c59x specs can be obtained from
> http://support.3com.com/partners/developer/developer_form.html
Thank you for this! I thought that they are under NDA...
> hmmm... It does write the address of the dirty_tx buffer to
> DownListPtr, which should trigger a transmit once the transmitter is
> unstalled.
Only if cur_tx - dirty_tx > 0, which is not true as they are equal!
> Well, cur_tx is the _next_ buffer to write to, and dirty_tx is the next
> one to send, so there are two pertinent states:
>
> cur_tx = dirty_tx && tx_full = 0: No buffers queued
> cur_tx = dirty_tx && tx_full = 1: TX_RING_SIZE buffers queued.
>
> So 'tx_full' changes the interpretation of 'cur_tx = dirty_tx'.
I beg to disagree here, IMHO cur_tx and dirty_tx are only incrementing
monotonically, while the ring is accesed through:
vp->dirty_tx % TX_RING_SIZE,
entry = vp->cur_tx % TX_RING_SIZE,
entry = vp->dirty_tx % TX_RING_SIZE,
prev_entry = &vp->tx_ring[(vp->cur_tx-1) % TX_RING_SIZE]
in different places.
So, when tx_full = 1, I expect that cur_tx = dirty_tx + TX_RING_SIZE. In
this case, (cur_tx % TX_RING_SIZE) = (dirty_tx % TX_RING_SIZE) is still
true.
However, I get cur_tx = dirty_tx which I interpret as ring empty (next
to be transmitted is an empty slot) and also as card's queue empty (as
dirty_tx is only incremented in vortex_interrupt if you don't get out of
the while loop on the DownComplete branch).
Then I ask again: why cur_tx = dirty_tx and tx_full = 1 ?
Also, I know that different architectures have different 'int' sizes, is
there any reason for dirty_tx and cur_tx to be architecture dependent (as
opossed to be u16, u32 or whatever)?
Sincerely,
Bogdan Costescu
IWR - Interdisziplinaeres Zentrum fuer Wissenschaftliches Rechnen
Universitaet Heidelberg, INF 368, D-69120 Heidelberg, GERMANY
Telephone: +49 6221 54 8869, Telefax: +49 6221 54 8868
E-mail: Bogdan.Costescu@IWR.Uni-Heidelberg.De
-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-vortex-bug-request@beowulf.org